Toto nejde.
Trik s reflection by fungoval pouze v případě, že bude vždy existovat konkrétní
potomek - něco jako:
public class XxxConvertor extends DbToWsdlConvertor<Xxx1, Xxx2> {
....
}
Jinak to bohužel z principu fungování generik nelze (informace za běhu vůbec
není k dispozici).
Kamil Podlešák
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]]on Behalf Of vkrejcirik
> Sent: Tuesday, June 16, 2009 1:33 PM
> To: [email protected]
> Subject: Vytvoreni instance parametru, ktery je zadan v
> genericke tride
>
>
> Dobry den, chtel bych se zeptat jak by slo vytvorit instanci
> parametru
> genericke tridy. Mam nasledujici kod:
>
> public class DbToWsdlConvertor<T_DB, T_WSDL> {
> ...
> public T_WSDL[] dbTypeArrayToWsdlArray() {
> ...
> v teto metode potrebuji vytvorit instanci pole prvku typu T_WSDL.
> Pokousel jsem se na to jit takto:
>
> ParameterizedType type = (ParameterizedType)
> this.getClass().getGenericSuperclass();
> Class classWsdl = (Class) type.getActualTypeArguments()[1];
> T_WSDL[] ret = ( T_WSDL[] ) Array.newInstance(classWsdl,
> tmp.length ) ;
>
> Bohuzel dostavam java.lang.ClassCastException: java.lang.Class
>
> Mohl by mi nekdo poradit? Dekuji
>
> --
> /**************************************/
> Best regards / S pozdravem
> Vladislav Krejčiřík
>
> http://www.vkrejcirik.info
>
>
>