Проверка в экземпляре объекта Class - PullRequest
3 голосов
/ 10 октября 2011

В основном я хочу проверить, является ли класс экземпляром предоставленного интерфейса.

У меня есть метод с такой подписью:

public ICard draw(Class<? extends ICardType> type)

Затем я попытался сделать это, но этопомечен как ошибка;

if (deck.get(i) instanceof type)

NetBeans выдает это как ошибку:

не может найти символ
символ: расположение типа класса: класс simple.marauroa.client.extension.cardgame.impl.DefaultDeck

Я даже попробовал это на одном из других вопросов:

deck.get(i).isAssignableFrom(type)

Я видел такие вопросы, как: Программная проверка, если файл .classрасширяет определенный класс и Как проверить instanceof для аргумента, который является объектом Class? , но они не соответствуют моему сценарию.

Есть какие-либо подсказки или идеи?Я знаю, что где-то совершаю глупую ошибку.

1 Ответ

5 голосов
/ 10 октября 2011

Я думаю, вы просто хотите

if (type.isInstance(deck.get(i)))

Из документации :

Определяет, является ли указанный объект совместимым с назначением с объектом, представленнымэтот класс.Этот метод является динамическим эквивалентом оператора instanceof языка Java.Метод возвращает значение true, если указанный аргумент Object не равен NULL и может быть приведен к ссылочному типу, представленному этим объектом Class, без вызова ClassCastException.В противном случае возвращается false.

...