2017-01-18 4 views
1

У меня есть этот метод:Проверить тип родового

public <T> void onMultipleSelectionTextFinished(
      @NonNull ArrayList<FMultipleSelectionText.HolderItem<T>> holderItems, 
      int payload) { 
    // check here 
} 

Как я могу проверить внутри него, что holderItem имеет тип ArrayList<FMultipleSelectionText.HolderItem<EFunction>> и, если она затем бросайте его, что и обрабатывать, если особым образом?

EDIT:

Я попытался с помощью instanceof, но он говорит это:

enter image description here

Кроме того, я пошел разгромом castig его Object первым, а затем castig его снова к тому, что Мне нужно, но это не изящное решение :(

+2

Если вам требуются специальные функции типа, не используйте генераторы –

ответ

1

Вы не можете сделать это во время компиляции из-за TypeErasure во время выполнения. Al вы можете сделать это с помощью отражения, API Guava также предоставляет методы для выполнения этой задачи. Пожалуйста, обратитесь к этому link.

+0

Хмм ... Я затрудняю свое существование этим. Мне просто нужно изменить всю структуру, если это единственный способ. Это было бы быстрее сделать, чем использовать отражение :) – AndreiBogdan

+0

Вы можете попробовать. :) @ Андреа Богдан –