在 switch 语句中保存未知子类类型的变量
Saving variable of unknown subclass type in switch statement
我有一个超级class 俄罗斯方块,每个版本都有子class,即
class PieceI extends TetrisPiece{
}
class PieceJ extends TetrisPiece{
}
etc...
在另一个 class 中,我有一个基于随机数的 switch 语句,它创建了一个随机片段
switch(rand){
//I
case 1: {
PieceI pieceI = new PieceI();
break;
}
//T
case 2: {
PieceT pieceT = new PieceT();
break;
}
etc...
default:
break;
}
我的目的是提取从 switch 语句范围生成的片段,以便稍后在 class 中使用它。
由于范围问题,switch 方法显然不起作用,我无法在 switch 语句之外创建一个 superclass 数组,因为由于随机化,我无法转换索引。
感谢任何帮助。
创建超类 TetrisPiece 的实例,然后在 switch 语句中为其分配 PieceT、PieceI 等。
TetrisPiece piece;
switch(rand){
//I
case 1: {
piece = new PieceI();
break;
}
//T
case 2: {
piece = new PieceT();
break;
}
etc...
default:
break;
}
我有一个超级class 俄罗斯方块,每个版本都有子class,即
class PieceI extends TetrisPiece{
}
class PieceJ extends TetrisPiece{
}
etc...
在另一个 class 中,我有一个基于随机数的 switch 语句,它创建了一个随机片段
switch(rand){
//I
case 1: {
PieceI pieceI = new PieceI();
break;
}
//T
case 2: {
PieceT pieceT = new PieceT();
break;
}
etc...
default:
break;
}
我的目的是提取从 switch 语句范围生成的片段,以便稍后在 class 中使用它。
由于范围问题,switch 方法显然不起作用,我无法在 switch 语句之外创建一个 superclass 数组,因为由于随机化,我无法转换索引。
感谢任何帮助。
创建超类 TetrisPiece 的实例,然后在 switch 语句中为其分配 PieceT、PieceI 等。
TetrisPiece piece;
switch(rand){
//I
case 1: {
piece = new PieceI();
break;
}
//T
case 2: {
piece = new PieceT();
break;
}
etc...
default:
break;
}