所以我正在编写游戏War,我需要将所有方法都放在主类中。由于某些错误,我无法初始化变量。
public class Main {
public Player<Card> player1 = new Player<Card>();
public Player<Card> player2 = new Player<Card>();
public Player<Card>[] players = new Player[2];
players[0] = player1;
players[1] = player2;
public static void main(String[] args) {
}
}
在这些代码行中,在我创建数组之后,我收到一条错误消息: “此行的多个标记
类型安全:Player []类型的表达式需要未经检查的转换以符合Player []
令牌“;”上的语法错误,{此标记之后的预期“
Player类正在扩展一堆Card类型。 欢迎任何建议。
感谢。
答案 0 :(得分:4)
诸如
之类的陈述players[0] = player1;
players[1] = player2;
不能在方法或构造函数之外完成。
您可以将它们放在构造函数中:
public Main () {
players[0] = player1;
players[1] = player2;
}
答案 1 :(得分:0)
如果您想在Main:
之外进行,可以使用初始化程序块class Main {
public Player<Card> player1 = new Player<Card>();
public Player<Card> player2 = new Player<Card>();
public Player<Card>[] players = new Player[2];
{
players[0] = player1;
players[1] = player2;
}
public static void main(String[] args) {
}
}
或者,提供构造函数并初始化该构造函数中的实例变量(players / 1/2)。
答案 2 :(得分:0)
我想如果你不打算在构造函数中初始化变量,你可以在类中使用静态块,你必须使变量静态并尝试
static {
players[0] = player1;
players[1] = player2;
}