我正在调用方法来根据传入的文本获取数据,这些文本将ping到数据库中。
所以我想检查是否有数据到达对象。
代码:
Method m = service.getMethodDataByFilter(text);
我试过了:
if(m == null){
System.out.println("In NULL");
}
但它没有进入它内部。
我也尝试过:
if(m.getName().isEmpty()){
System.out.println("In NULL");
}
然后它会导致NPE
处于状态,因为没有收到任何数据。
那么如何检查对象内是否有数据?
方法类:
public class Method {
private Integer id;
private String name;
// getter-setter
}
更新
只需尝试Ruchira
if(m== null){
System.out.println("m is null");
}else if(m.getName()==null){
System.out.println("m.getName() is null");
}else if(m.getName().isEmpty()){
System.out.println("m.getName() is empty");
}
仍然抛出相同的NPE
。
完整的方法代码:
public MethodDTO getMethod(String text){
Method m = service.getMethod(text);
if(m == null){
System.out.println("m is null");
}else if(m.getName()==null){
System.out.println("m.getName() is null");
}else if(m.getName().isEmpty()){
System.out.println("m.getName() is empty");
}
ModelMapper mapper = ModelMap.methodMapper();
return mapper.map(m, MethodDTO.class);
}
答案 0 :(得分:0)
您需要将代码更改为:
if(myObject==null){ // check if object is null
System.out.println("myObject is NULL");
}
else{ // myObject should not be null here
if(myObject.getField1()==null) // check for fields within the object
{
System.out.println("field1 is NULL");
}
if(myObject.getField2()==null)
{
System.out.println("field2 is NULL");
}
...
}
注意,如果对象为null,则尝试访问任何非静态字段/方法将导致NPE。
答案 1 :(得分:0)
试试这个if ( m == null || m.getName()== null)
。请注意,除了m之外,其名称也可以是null
。
答案 2 :(得分:0)
m == null
当对象m
不为null时,将返回false,但它不会在对象内递归检查其所有属性。
m.getName()
似乎返回null但是即使这个语句也不会抛出NPE。但是如果你打电话m.getName().isEmpty()
会抛出NPE。你最好这样检查:
if (m.getName() == null) //assuming you have already checked for m being null
答案 3 :(得分:0)
解释。
if(m == null){
System.out.println("In NULL");
}
由于if
内m
未null
,因此if(m.getName().isEmpty()){
System.out.println("In NULL");
}
内没有NullPointerException
。但是
m.getName()
由于null
为 if(m == null){
System.out.println("m is null");
}else if(m.getName()==null){
System.out.println("m.getName() is null");
}else if(m.getName().isEmpty()){
System.out.println("m.getName() is empty");
}
,因此您获得{{1}}。
所以你可以尝试如下
{{1}}
答案 4 :(得分:0)
检查对象是否为空或不是这样:
if(m != null && m.getName != null) {
// Object m is not null and m.getName is also not null
} else {
// Either Object m is null or m.getName is null or both are null
}