Here is my analysis of the situation. I could be wrong. But here
goes..
When I got my copy of Java 5 my first question was, do generics really
take the cast out of the equation? I disassembled the code to find
the cast still exists. This implies that when you compile this..
HashMap<String,String> map = new HashMap<String,String>()
String string = map.get("");
The generated code actually equates to this..
HashMap map = new HashMap()
String string = (String)map.get("");
The class returned by map.getClass() does not know the map only
contains Strings. It's actually the reference to the map which
marshals the types.
I did a quick test...
HashMap<String,String> map1 = new HashMap<String,String>();
HashMap<Date,Date> map2 = new HashMap<Date,Date>();
System.out.println(map1.getClass() == map2.getClass());
true
They use the same class and can't therefore hold the type information
for both declarations.
I can only assume this re-compiler the posse were talking about, scans
the code for the actual cast / type check to determine the types.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---