Ah, it seems that when you call the getEnum method and provide the class,
it only finds Enums of that class and not an extension of it. Which,
looking at the code makes sense.

Anonymous extensions do still work as $1.. etc gets stripped off.

So, one solution is to declare explicit classes with inner class names :)

It compiles, it passes the test, it leaves them puking in the aisles.

Any other ideas?

Hen


On Tue, 29 Jul 2003, Henri Yandell wrote:

>
> Just downloaded the 1.2.2 to my new linux dev-server. Up until now I've
> been building under 1.3 and 1.4.
>
> src/test/org/apache/commons/lang/enum/OperationEnum.java does not build
> under 1.2.2/Linux due to:
>
>     [javac]
> /home/hen/jakarta/branch2.0/jakarta-commons/lang/src/test/org/apache/commons/lang/enum/OperationEnum.java:67:
> class org.apache.commons.lang.enum.OperationEnum is an abstract class. It
> can't be instantiated.
>     [javac]     public static final OperationEnum PLUS = new
> OperationEnum("Plus") {
>     [javac]                                              ^
>     [javac]
> /home/hen/jakarta/branch2.0/jakarta-commons/lang/src/test/org/apache/commons/lang/enum/OperationEnum.java:72:
> class org.apache.commons.lang.enum.OperationEnum is an abstract class. It
> can't be instantiated.
>     [javac]     public static final OperationEnum MINUS = new
> OperationEnum("Minus") {
>     [javac]                                               ^
>
> It appears to get confused. So I made OperationEnumPlus and
> OperationEnumMinus which extend OperationEnum and have the specific
> eval(int,int) method.
>
> However, using this the tests fail. It seems as though the Plus and Minus
> enums are not getting registered in the static part of Enum:
>
>      [java] There were 4 failures:
>      [java] 1)
> testOperationGet(org.apache.commons.lang.enum.EnumTest)junit.framework.AssertionFailedError:
> expected same:<OperationEnumPlus[Plus]> was not:<null>
>      [java]     at
> org.apache.commons.lang.enum.EnumTest.testOperationGet(EnumTest.java:187)
>      [java] 2)
> testOperationList(org.apache.commons.lang.enum.EnumTest)junit.framework.AssertionFailedError:
> expected:<2> but was:<0>
>      [java]     at
> org.apache.commons.lang.enum.EnumTest.testOperationList(EnumTest.java:204)
>      [java] 3)
> testOperationMap(org.apache.commons.lang.enum.EnumTest)junit.framework.AssertionFailedError
>      [java]     at
> org.apache.commons.lang.enum.EnumTest.testOperationMap(EnumTest.java:217)
>      [java] 4)
> testOperationToString(org.apache.commons.lang.enum.EnumTest)junit.framework.ComparisonFailure:
> expected:<......> but was:<...Plus...>
>      [java]     at
> org.apache.commons.lang.enum.EnumTest.testOperationToString(EnumTest.java:198)
>
>      [java] FAILURES!!!
>
>
> Any ideas?
>
> Hen
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to