所以我在这个名为Player的类中有我的构造函数,其中每个玩家都是5的数组(将他们的赌注存储在另一个类中):
public class Player {
private int[] anyplayer = new int[5];
// constructor for each player at the table
public Player(int[] anyplayer) {
this.anyplayer = anyplayer;
}
现在我已经在不知不觉中将我的另一个课程编码为:
int[] player2 = new int[5]; // this is a variable I'm trying to change to the object
try{
for(int i=0;i<5;i++) {
player2[i] = Integer.parseInt(keyin.nextLine());
}
}
catch(NumberFormatException e){
System.out.println("Player 3 : ");
}
现在我无法在不破坏一切的情况下找到解决方法!我仍然是编程的新手,但有一种简单的方法可以用int[] player2 = new int[5];
之类的构造函数中的实际对象替换Player player2 = new player();
吗?
我已经尝试了,并且一直说The constructor Player() is undefined
答案 0 :(得分:3)
你的构造函数接受一个整数数组,所以它将是
int[] player2 = new int[5];
Player somePlayer = new Player(player2);
答案 1 :(得分:1)
为什么不使用你制作的数组创建对象?添加到最后:
Player player2object = new Player(player2);
答案 2 :(得分:1)
每个Java类都有默认的空构造函数,直到您为此对象设置任何其他构造函数。 你必须添加新的构造函数
public Player() {
//youre code
}
或在玩家构造函数调用中设置玩家数量(来自@Dmitrii Kondratev回答)
int[] player2 = new int[5];
Player somePlayer = new Player(player2);
答案 3 :(得分:0)
你唯一的构造函数将一个int数组作为参数,这就是原因。
如果您认为在没有int
数组的情况下初始化Player对象是可以的,则可以添加无参数构造函数,如下所示:
public Player(){}
或者您必须将int
数组传递给构造函数,如下所示:
int[] tmpa=null;
Player p=new Player(tmpa);