gpt4 book ai didi

java - 使用 mysql PrepareStatement 取消引用可能的空指针警告

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:34 25 4
gpt4 key购买 nike

虽然我不得不说,我对 Java 还是个新手,但我已经开始掌握它了,而且它非常酷。无论如何,在我的 Netbeans IDE 中,我收到警告 Dereferencing possible null pointer。请在此处查看代码快照。您可以看到强调空指针警告的黄线。

这里是纯文本

    /*
* Establish Connection to MySQL
*/
Connection conn;
conn = MySQLConnectionClass.getCurrentConnection();
if (conn == null){
System.out.println("MySQL not connected!");
}

/*
* get the change in price-nav/price
*/
double nav_change;
float first_close = 0;
float first_nav_close = 0;
float last_nav_close = 0;
String sym = "";
try{
try (PreparedStatement get_p = conn.prepareStatement("SELECT close, symbol FROM test.cef_daily_data where symbol = (select symbol from cef_nav_real_time_trading_watch_list where id = ?) order by date desc limit 6,1;")) {
get_p.setInt(1,id);
ResultSet price = get_p.executeQuery();
try{
price.next();
first_close = price.getFloat(1);
sym = price.getString(2);
price.close();
}catch (SQLException e){

}
}

这是显示警告的图像。

enter image description here

我找到了一个关于取消引用空指针的很好的初学者解释 here .

我想也许 PreparedStatement 变量:get_p 有可能是 null,所以我试着在后面加一行来检查确定 get_p 不是 null,但这并没有使警告消失。

所以我不只是试图让这个警告消失,我还试图了解问题所在以提高我的 Java 技能。感谢您的帮助!

更新

问题是 conn 变量有可能为 null。我像这样添加了一个 return 行来解决问题:

/*
* Establish Connection to MySQL
*/
Connection conn;
conn = MySQLConnectionClass.getCurrentConnection();
if (conn == null){
System.out.println("MySQL not connected!");
return;
}

最佳答案

if (conn == null){
System.out.println("MySQL not connected!");
}

...将只打印一条消息并继续引用后续行中的空指针(prepareStatement 调用是它的以下用法)。如果没有连接,您可能想要添加一个 return 或绕过实际查询的某种错误处理。

关于java - 使用 mysql PrepareStatement 取消引用可能的空指针警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com