0

我编写了一个方法,可以返回 Android 上最有可能的 LAN 接口。由于用户可能未连接到 LAN,因此此方法可能返回 null。我应该如何在 JavaDoc 中警告调用者这种可能性?我认为我不应该使用@throws,因为该方法实际上并没有抛出 NullPointerException。

4

1 回答 1

0

我认为正确的方法是在 return 子句中:

/**
 * ...
 * @return {@code null} if the user is not connected to a LAN, else the most
 * likely LAN interface.
 */
public LanInterface getMostLikelyInterface();

调用者有责任知道这意味着在检查之前不要使用返回的值。

尽管您可以改用 Guavas 的Optional课程:

/**
 * ...
 * @return Optional.absent if the user is not connected to a Lan interface,
 *    else the most likely one.
 */
public Optional<LanInterface> getMostLikelyInterface();

然后用户必须使用if(iface.isPresent()),它比 . 可读性强得多if(iface != null)

于 2013-04-11T19:01:56.597 回答