Как привести объект к интерфейсу? - PullRequest
0 голосов
/ 26 июня 2019

Я хочу иметь возможность приводить неизвестный тип объекта к интерфейсу, а затем вызывать метод интерфейса для вновь приведенного объекта. Раньше я делал это при разработке на C ++, и это работало нормально.

Я попытался выполнить приведение только для получения ClassCastException.

interface Interact {
    void interact();
}

class Item implements Interact {

    public void interact(){
        System.out.println("Interacted");
    }
}


//This is pseudo code. I understand that obj is null
Object obj;

Interact interactable = (Interact) obj;

//Now I can call interact's methods
interactable.interact();

1 Ответ

0 голосов
/ 26 июня 2019

Вы можете использовать instanceof, который проверяет класс объекта. Его синтаксис object instanceof class.

В вашем примере:

if (item instanceof Interact){
    Interact interactItem = (Interact)item;
    interactItem.interact();
    .....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...