2017-02-14 5 views
0

Привет, ребята, я пытаюсь создать функцию, которая проверяет нуль на объект перед вызовом функции.Pass метод as param Android

-Если это не 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() вернулся через nullObject

+2

ли «пропускание функции» можно: Нет Есть ли необходимость для того, что вы пытаетесь сделать здесь: Нет –

ответ

0

это будет вылетать, если объект является пустым:

object.function(); 

сделать классический путь:

if object!=null 

object.function(); 
1

вы можете инициализировать свой объект, если он является нулевым внутри вашего метода объекта, подобного этому.

public Object object(){ 
    if(object != null){ 
     //in this case we would call 'function()' 
     return object; 
    } 
    else{ 
    //initialize your object here and return it 
    } 
} 
+0

Возможно, лучше не возвращать инициализированный объект в 'else', но называть его' function() '. –

0

Нет, вы не можете передать ссылку на функцию в качестве аргумента, но вы можете пропускать 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();