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