Díky za odpověď, pane Troníčku, už to chápu proč :-)
Všiml jsem si, že se nové verze javac většinu věcí staží překládat do zpětně
kompatibilního bajtkódu.
Není to až příliš limitující? Jako vývojář bych měl přece udělat rozhodnutí
pro jaké minimální JDK má aplikace poběží. A to ne jen ve smyslu n
Dobrý den,
1)doporučuji prostudovat:
http://download.oracle.com/javase/tutorial/java/generics/gentypes.html
It's important to understand that type variables are not actually types
themselves. In the above examples, you won't find T.java or T.class
anywhere on the file system. Furthermore, T is
Zdravím,
když se lidi ze Sunu rozhodovali, jak implementovat generics, tak vybrali
zpětně kompatibilní a nejjednodušší způsob: Type erasure [1].
Generické i negenerické třídy vypadají po zkompilování stejně. Kontrolu
provádí jen kompilátor. V bytecode o aktuálních type parametrech nic není,
takže
Ahoj,
protože typový parametr není za běhu k dispozici. Při překladu jej
překladač odstraní. Např.
class Box {
T t;
Box(T t) { }
}
se přeloží jako
class Box {
Object t;
Box(Object t) { }
}
Pokud potřebuješ v konstruktoru typový parameter, lze to udělat přes
parametr typu Class:
class
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 {
public NewClass() {
System.out.println("Zavolali jste mě s typem " +
T.class.getName());
}
public static void m