【问题标题】:IntelliJ: Why java.net.InetAddress is deprecated Class?IntelliJ:为什么不推荐使用 java.net.InetAddress 类?
【发布时间】:2017-12-01 20:17:10
【问题描述】:

我遇到了一些问题。我的程序无法运行,抛出:nullPointException。在其他 IDE 上它正在运行。

一天前我只是点击了一些东西,我不知道那是什么:( 现在看起来像这样:

InetAddress localHost = Inet4Address.getLocalHost();

但 InetAddress 已通过。

请帮忙,我该如何撤消此操作。

【问题讨论】:

  • 这是两个 - 并且可能不相关 - 问题(NPE 是 SO 上的一个热门问题),但你可以忘记任何人帮助你解决“我只是点击某个东西,我不知道那是什么”是”的一部分。
  • 请参阅stackoverflow.com/a/44569788/104891,了解已弃用的问题。

标签: java intellij-idea inetaddress


【解决方案1】:

Java 9 之前的版本不推荐使用此方法

https://docs.oracle.com/javase/9/docs/api/java/net/InetAddress.html#getLocalHost--

我在配置错误的机器上看到了这种失败。例如你有一个无效的主机文件,尽管它不应该抛出 NullPointerException AFAIK。

我所做的是捕获 UnknownHostException 并在失败时使用 "localhost"

https://github.com/OpenHFT/Chronicle-Core/blob/master/src/main/java/net/openhft/chronicle/core/OS.java#L133

private static String getHostName0() {
    try {
        return InetAddress.getLocalHost().getHostName();
    } catch (UnknownHostException e) {
        return "localhost";
    }
}

【讨论】:

    猜你喜欢
    • 2016-02-23
    • 2017-11-04
    • 2011-10-22
    • 2011-04-11
    • 2021-10-12
    • 2012-12-07
    • 2012-05-16
    • 2020-06-29
    • 2014-08-11
    相关资源
    最近更新 更多