传递方法作为param Android

时间:2017-02-14 15:57:33

标签: java android function null

大家好我正在尝试创建一个函数,在调用函数之前检查对象的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上出现空指针异常

3 个答案:

答案 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();