поэтому у меня есть этот класс в Java:Проверьте общий T реализует интерфейс
public class Foo<T>{
}
и внутри этого класса, я хочу знать, если T реализует определенный интерфейс.
Следующий код не работает, но это идея о том, что я хочу сделать:
if(T.class implements SomeInterface){
// do stuff
}
, поэтому я хочу, чтобы проверить, если класс T
, который был принят в Foo есть implements SomeInterface
на его подписи.
Возможно ли это? Как?
привет. Мне действительно нужна проверка true/false, потому что я изменяю существующий класс. Я пробую ваш второй код, но до сих пор не знаю, откуда пришел tClass. Любая помощь по этому поводу? – Budius
@Budius Вашему пользователю необходимо в какое-то время передать либо 'Class' из 'someInstanceOfT.getClass()', либо передать экземпляр 'T'. Стирание типа не позволит вам получить его в противном случае. –
hexafraction
, поэтому я не могу использовать фактический общий 'T' для проверки интерфейса, я буду использовать его во время' public void add (T object) {...} 'и проверять его на' object' , – Budius