我正在从数据库中检索一些信息,我想检查该值是否为null。尽管从数据库检索的字符串为“ null”,但equals()返回false。
我尝试过trim(),以防万一检索到的字符串中有空格
String code = product.retrieveCode();
System.out.println("the code is :"+ code);
if (code.equals("null")==true){
// do this
}
else{
// do that
}
请注意,数据库没有存储任何数据。
答案 0 :(得分:1)
正如'Eran'所指出的,code
中的值可能是null
引用。做
if (code == null)
代替
if (code.equals("null")==true)
这可能是由于rs
对象在调用null
方法时返回了getString()
。当列值为SQL NULL时,ResultSet
将返回null
。 (Reference)
答案 1 :(得分:1)
您的逻辑和语法是正确的。在这种情况下,您的数据库值可能正在为代码分配空值,并且您正在检查字符串“ null”是否等于代码。这将导致错误,因为它是空引用。确保您得到的是“ null”,否则,如果其为空,则仅检查是否等于空格并保留空白
答案 2 :(得分:0)
它打印是。所以我不认为Java做错了什么
String code = "null";
if (code.equals("null")){
System.out.println("Yes");
} else{
// do that
}
我认为这是一个空引用。请执行以下代码。
if (code==null){
System.out.println("Yes");
} else{
// do that
}
答案 3 :(得分:0)
1。
code
不能为null,因为code.equals()
会抛出NullPointerException
,因为您将从null
->调用不存在的方法。
2。
.equals()
区分大小写,大多数数据库将空存储为NULL
,因此请使用code.equalsIgnoreCase("null")
。