import java.util.EnumSet; public class ConstantSpecificMethod { private static enum Cycle { UNDERBODY { @Override void action() { System.out.println("Underbody"); } }, WHEELWASH { @Override void action() { System.out.println("Wheelwash"); } }, OVERRIDE { @Override void action() { System.out.println("Override"); } /**重寫父類方法**/ public String toString() { return "override"; } }; abstract void action(); } EnumSet<Cycle> cycles = EnumSet.of(Cycle.WHEELWASH); public void add(Cycle cycle) { cycles.add(cycle); } public void print() { for(Cycle c : cycles) { c.action(); } } @Override public String toString() { return cycles.toString(); } public static void main(String[] args) { ConstantSpecificMethod csm = new ConstantSpecificMethod(); System.out.println(csm); csm.print(); csm.add(Cycle.UNDERBODY); csm.add(Cycle.UNDERBODY); csm.add(Cycle.OVERRIDE); /**EnumSet中的排序時按出如今枚舉類中的順序**/ System.out.println(csm);//輸出結果:[UNDERBODY, WHEELWASH, override]。。枚舉類默認toString返回的是實例名 csm.print(); } }