java - IF 语句中的死代码警告

标签 java warnings

我不知道为什么 eclipse 在我的这段代码中警告我“死代码”:

    PreparedStatement p = conn.prepareStatement("SELECT name FROM user WHERE age = ? , city = ?");
    p.setInt(1, (String) parameters.get("age"));
    p.setString(2, (String) parameters.get("city"));

    if (p == null) {
        log.warn("User is not available");
        return results;
    }

警告在日志中,谁能告诉我这是什么原因?谢谢。

最佳答案

p 此时不能为 null,因为您已经在 上调用了 setIntsetString code>p 并且如果它在那里是 null,那么它会抛出一个 NullPointerException,因此永远不会到达您的 if

另请注意,根据 its documentation , preparedStatement 永远不会返回 null。它只能返回有效的语句或抛出异常。在后一种情况下,您的 if无法到达。然而,编译器检查这一事实(因为 prepareStatement损坏实现 可能理论上返回 )。

关于java - IF 语句中的死代码警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11305432/

相关文章:

python - 从警告中追溯

c++ - 我应该担心 g++ 警告说 'inlining failed' 吗?

c++ - MPI 警告 : Program exiting with outstanding receive requests

java - 将 dataset.addSeries 与 Long[] 值一起使用

java - 在 Seam 中的事务提交时捕获异常

c++ - 系统头文件重新定义宏: how do I tell gcc to ignore?

Android Studio "UsingOnClickInXml"警告

java - 读取文件并添加到二维 double 组中

java - Android - Jackson JSON 解析器在 'release' 版本中返回空值

java - JOGL - 照明/相机