将方法作为参数Android传递



大家好,我正在尝试创建一个函数,该函数在调用函数之前检查对象的 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();

相关内容

  • 没有找到相关文章

最新更新