多路分发3使用常量相关的方法?常量相关的方法允许我们为每个enum实例提供方法的不同实现,这使得常量相关的
多路分发3
使用常量相关的方法
?
常量相关的方法允许我们为每个enum实例提供方法的不同实现,
这使得常量相关的方法似乎是实现多路分发的完美解决方案。
不过,通过这种方式,enum实例虽然可以具有不同的行为,
但他们任然不是类型,不能将其作为方法签名中的参数类型
来使用。最好的办法是将enum用在switch语句中
?
public enum RoShamBo6 implements Competitor<RoShamBo6>{PAPER, SCISSORS, ROCK;private static Outcome[][] tables = {{DRAW, LOSE, WIIN},//PAPER{LOSE, WIN, DRAW},//ROCK{WIN, DRAW, LOSE}, //SCISSOR};public Outcome compete(RoShamBo6 other){return table[this.ordinal()][other.ordinal()];}public static void main(String[] args){RoShamBo.play(RoShamBo6.class, 20);}}??
