Hezké nedělní poledne!
Možná jsem málo studoval genericitu, ale proč není možné použít T.class (a
T.class.getName() apod.) v tomto případě?

public class NewClass<T> {

    public NewClass() {
         System.out.println("Zavolali jste mě s typem " +
T.class.getName());
    }

    public static void main(String[] args) {
        new NewClass<String>();
        new NewClass<Integer>();
    }
}

NetBeans varuje hláškou: "Cannot select from a type variable".

Pokus o překlad dopadne chybou:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source
code - Erroneous tree type: <any>
    at beantablemodel.NewClass.<init>(NewClass.java:14)
    at beantablemodel.NewClass.main(NewClass.java:18)
Java Result: 1

Vždyť to je známo jaký objekt jsem dodal (new NewClass<String>()) a na každý
objekt je možné použít .class...

Díky za odpovědi!
Libor

Odpovedet emailem