Ahoj Lukasi, ... a nebo si muzes predat jiz hotovou instanci T a na ni volat clone() ...
Jirka Petr Gola napsal(a): > > Zdravím, řešil bych to takhle: > > import java.util.logging.Level; > import java.util.logging.Logger; > > public class MyClass<T> { > > private T t; > > public MyClass(Class<T> type) { > > super(); > > try { > t = (T) type.newInstance(); > System.out.println("instance: "+t.getClass().getName()); > } catch (InstantiationException ex) { > Logger.getLogger(MyClass.class.getName()).log(Level.SEVERE, > null, ex); > } catch (IllegalAccessException ex) { > Logger.getLogger (MyClass.class.getName()).log(Level.SEVERE, > null, ex); > } > } > > public static void main(String[] args) { > MyClass<String> c = new MyClass<String>(String.class ); > } > } > > Řekl bych, že new T() nefunguje, protože T je dostupný jen pro > kompilaci. Je to sice ukecanější - je třeba předávat ještě "T.class", > ale je to navíc informace, která přežije kompilaci :) > > > Petr Gola > > > On 21/11/2007, *Lukas Adamek | Fayn Telecommunications s.r.o.* > <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote: > > Ahoj > > > > Mam problem s generickymi tridami. Nez to slozite popisovat, tady je > priklad: > > > > *public* *class* MyClass<T> *extends* Parent { > > *private* T t; > > * * > > *public* MyClass () { > > super(); > > t = new T(); // kompilacni problem > > } > > } > > > > Jak muzu udelat instanci promene t? > > > > Diky l. > > > > > > -- Jiří Mareš (mailto:[EMAIL PROTECTED]) ČSAD SVT Praha, s.r.o. (http://www.svt.cz) Czech Republic