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