Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.1
-
None
-
Operating System: other
Platform: Other
-
36666
Description
Hi,
I encountered with problem using EnumUtils.getEnum() in 1.5. It appears that my
Enum class should be accessed first so constructor will be called. In 1.4 it was
enough to have myClass.class, so all static members were initialized. In 1.5 it
doesn't work.
I noticed that static members are not initialized anymore while acessing to
class definition. See the code
public class Test {
public static final class TT{
public static final TT one = new TT();
private TT()
{ System.out.println("Called TT" ); }}
public static void main(String[] args)
{ Class cl = TT.class; // System.out.println( TT.one); // System.out.println(TT.class.isAssignableFrom(String.class)); }}
In 1.4 constructor of TT is called, while in 1.5 is not.
Actually, according to the spec
(http://java.sun.com/docs/books/jls/second_edition/html/execution.doc.html#57946),
this is right behavior of Java.
Unfortunately, I didn't succeded to think about good solution..
P.s. I know that in 1.5 we have enum built-in, but it is not the same, and we
try to move to 1.5 without too much changes
Attachments
Issue Links
- is duplicated by
-
LANG-153 [lang] Can't XMLDecode an Enum
- Closed