Класс как параметр метода

Ответить
Upcoming
Сообщения: 5
Зарегистрирован: 05 янв 2015, 00:50

Класс как параметр метода

Сообщение Upcoming » 07 янв 2015, 20:45

Пытаюсь написать метод, который проверял бы, является ли переданный элемент объектом класса, который передается вторым параметром:

Код: Выделить всё

myMethod(v, Button.class);

public void myMethod(View v, Class<? extends View> myClass) {
    if (v instanceof myClass) {
        // some code
    }
}
Выдает ошибку в 4 строке. Подскажите, как нужно правильно написать.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Класс как параметр метода

Сообщение doter.ua » 07 янв 2015, 22:35

myClass.class
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Upcoming
Сообщения: 5
Зарегистрирован: 05 янв 2015, 00:50

Re: Класс как параметр метода

Сообщение Upcoming » 08 янв 2015, 16:45

Нагуглил сам каким-то чудом. Вот так правильно будет:

Код: Выделить всё

myMethod(v, Button.class);

public void myMethod(View v, Class<? extends View> myClass) {
    if (myClass.isInstance(v)) {
        // some code 
    }
}

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Класс как параметр метода

Сообщение altwin » 09 янв 2015, 14:08

Upcoming писал(а):Нагуглил сам каким-то чудом. Вот так правильно будет:

Код: Выделить всё

myMethod(v, Button.class);

public void myMethod(View v, Class<? extends View> myClass) {
    if (myClass.isInstance(v)) {
        // some code 
    }
}
никакого чуда тут нет instanceof с generics не работает.
Изображение

Ответить