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