我有一个实例变量piece
,类型为Object
。作为switch
语句的一部分,它被实例化为程序中的几个类之一,如下所示:
public Object getRandomPiece() {
int random = (int)(Math.random()*8);
switch(random) {
case 0: case 1:
_piece = new Piece1();
}
return _piece;
}
请注意,有多种情况,我只是在此片段中对其进行了总结。我的问题是,在从_piece
语句中给switch
赋值并返回它之后,我无法访问其新类的任何方法(例如,类Piece1
中的方法)。我应该如何处理?
答案 0 :(得分:1)
编程为 common Piece
接口。如果不使用对象状态,则最好使用方法static
。我更喜欢ThreadLocalRandom
胜过Math.random()
,并且我希望避免不必要的局部临时变量。放在一起,看起来可能像
public static Piece getRandomPiece() {
switch (ThreadLocalRandom.current().nextInt(8)) {
case 0: case 1:
return new Piece1();
}
return null;
}