Obávám se, že to nepůjde -- generika jsou v Javě pouze na úrovni typové 
kontroly překladačem, po překladu z A<T> vznikne A. Více viz. 
http://java.sun.com/developer/technicalArticles/J2SE/generics/index.html 
(poznámka až úplně dole). 

                   Mirek

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martin Beránek
Sent: Friday, June 13, 2008 8:53 AM
To: Java
Subject: generic instanceof

Zdravím konferenci,

narazil sem na zajímavý problém - nemůžu vygooglit řešení... navíc po přečtení
tohoto: http://www.ibm.com/developerworks/java/library/j-jtp01255.html si 
nejsem jistý jestli řešení existuje, takže:

mám abstraktní třídu A<T>. V této třídě načítám pluginy (přes Class.forName) - 
rozhraní pro pluginy mám definované jako:

interface Plugin<T> {
        boolean execute(T param);
}

V třídě A bych před zavoláním execute potřeboval ověřit, že:

plugin instanceof Plugin<T>

tedy že plugin typově sedí k dané implementaci. Například:

"class Plugin1 implements Plugin<Number>" půjde zavolat z "class B extends 
A<Integer>" ale ne z "class C extends A<String>"

dále poznamenám že v abstraktní třídě A mám k dispozici proměnnou typu Class<T>

--
Martin Beránek

Odpovedet emailem