大家好,我正在尝试创建一个函数,该函数在调用函数之前检查对象的 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
如果对象为空,这将崩溃:
object.function();
执行经典方式:
if object!=null
object.function();
如果对象在对象方法中为 null,则可以像这样初始化对象。
public Object object(){
if(object != null){
//in this case we would call 'function()'
return object;
}
else{
//initialize your object here and return it
}
}
不,您不能将函数引用作为参数传递,但可以像这样传递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
方法中检查对象是否为 null,如果不是,则调用它:
if(object != null) object.function();