Mystisk. Så må den jo gemme det på en eller anden måde. Jeg havde forstået, at al generics blev oversat til casts osv før compileringen... Men der er selvfølgelig også mulighed for, at jeg husker forkert :)
public class TempTest { public static void main(String[] args) { System.out.println(MinMax.min(1,3)); System.out.println(MinMax.max(1,3)); int v = MinMax.max(5,3); System.out.println(v); } }
class MinMax { public static <T extends Comparable<T>> T min(T a, T b) { return a.compareTo(b) < 0 ? a : b; } public static <T extends Comparable<T>> T max(T a, T b) { return a.compareTo(b) > 0 ? a : b; } }
efter compile og decompile:
import java.io.PrintStream;
public class TempTest {
public TempTest() { }
public static void main(String args[]) { System.out.println(MinMax.min(Integer.valueOf(1), Integer.valueOf(3))); System.out.println(MinMax.max(Integer.valueOf(1), Integer.valueOf(3))); int i = ((Integer)MinMax.max(Integer.valueOf(5), Integer.valueOf(3))).intValue(); System.out.println(i); } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.