1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| public class EnumTest {
public static enum TestEnum1 {
TEST1(new EnumWrapper<TestEnum1>("test1")), TEST2(
new EnumWrapper<TestEnum1>("test2"));
private EnumWrapper<TestEnum1> wrapper;
private TestEnum1(EnumWrapper<TestEnum1> wrapper) {
this.wrapper = wrapper;
wrapper.setWrappee(this);
}
public EnumWrapper<TestEnum1> getWrapper() {
return wrapper;
}
}
public static enum TestEnum3 {
TEST3(new EnumWrapper<TestEnum3>("test3")), TEST4(
new EnumWrapper<TestEnum3>("test4"));
private EnumWrapper<TestEnum3> wrapper;
private TestEnum3(EnumWrapper<TestEnum3> wrapper) {
this.wrapper = wrapper;
wrapper.setWrappee(this);
}
public EnumWrapper<TestEnum3> getWrapper() {
return wrapper;
}
}
public static class EnumWrapper<E extends Enum<E>> {
private String name;
private E wrappee;
public EnumWrapper(String name) {
this.name = name;
}
public String getName() {
return name;
}
void setWrappee(E wrappee) {
this.wrappee = wrappee;
}
public E getWrappee() {
return wrappee;
}
}
} |
Partager