Vytvoreni instance parametru, ktery je zadan v genericke tride
Jiří Mareš
Jiri.Mares na svt.cz
Úterý Červen 16 13:45:42 CEST 2009
Ahoj,
takze jedina moznost je pouzit Cloneable a nebo vlastni podobne rozhrani a mit k dispozici instanci.
Jirka
Podlesak Kamil napsal(a):
>
> 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: konference-bounces na java.cz
>> [mailto:konference-bounces na java.cz]On Behalf Of vkrejcirik
>> Sent: Tuesday, June 16, 2009 1:33 PM
>> To: Konference na java.cz
>> 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
>>
>>
>>
--
Jiří Mareš (mailto:Jiri.Mares na svt.cz)
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic
Další informace o konferenci Konference