大家好我正在尝试创建一个函数,在调用函数之前检查对象的null。
- 如果它不为null,则调用该方法,否则它不执行任何操作。
示例:
private Object object;
private void doSomething(){
object().function();
//or
object(function())
}
public void object(){
if(object != null){
//in this case we would call 'function()'
}
}
这样的事情可能吗?
如果例如object().function();
返回object()
null
Object
上出现空指针异常
答案 0 :(得分:1)
如果object为null,这将崩溃:
object.function();
做经典的方式:
if object!=null
object.function();
答案 1 :(得分:1)
如果对象在对象方法中为null,则可以初始化对象。
public Object object(){
if(object != null){
//in this case we would call 'function()'
return object;
}
else{
//initialize your object here and return it
}
}
答案 2 :(得分:1)
不,您不能将函数引用作为参数传递,但可以传递Runnable
这样的对象:
private Object object;
private void doSomething(){
Runnable functionRunnable = new Runnable() {
public void run(){
object.function();
}
};
object(functionRunnable);
}
public void object(Runnable action){
if(object != null){
action.run();
}
}
但在这种情况下,你不必这样做。您可以在doSomething
方法中检查对象是否为空,如果不是,则调用它:
if(object != null) object.function();