在情况下如何使用涉及实例化的switch语句?

时间:2018-11-17 03:13:43

标签: java switch-statement

我有一个实例变量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中的方法)。我应该如何处理?

1 个答案:

答案 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;
}