Greetings,
I beg pardon for the previous HTML mail.
Some time ago I wanted to migrate our "commons-lang" enums to "java 5"
enumerations, but I encountered an issue that it cannot be done without
discarding generics since java enums do not support them. Let me show an
example:
//------
public final class ColorEnum<T extends Pixel> extends
org.apache.commons.lang.enums.Enum {
public static final ColorEnum<PurePixel> RED = new
ColorEnum<PurePixel>("Red");
public static final ColorEnum<PurePixel> GREEN = new
ColorEnum<PurePixel>("Green");
public static final ColorEnum<PurePixel>�BLUE = new
ColorEnum<PurePixel>("Blue");
public static final ColorEnum<MixedPixel> WHITE = new
ColorEnum<MixedPixel>("White") {
@Override
public MixedPixel make() {...}�
};
private ColorEnum(String color) {super(color);}
public boolean filter(T pixel) {...}
public T make() {...}
}
//------
And I wonder if there is a specific reason why I cannot convert it into
something like:�
//------
public enum Color<T extends Pixel> {
RED<PurePixel>("Red"),
GREEN<PurePixel>("Green"),
BLUE<PurePixel>("Blue"),
WHITE<MixedPixel>("White") {
@Override
public MixedPixel make() {...}�
};
private Color(String color) {...}
public boolean filter(T pixel) {...}
public T make() {...}
}
//------
Thank you in advance.
Sincerely yours,
Victor Polischuk