Java 对象的ArrayList和对象的特定名称
我正在学习制作一个游戏,我几乎完成了游戏的主要部分,但没有一件事情能够成功。 我需要从Java 对象的ArrayList和对象的特定名称,java,arraylist,Java,Arraylist,我正在学习制作一个游戏,我几乎完成了游戏的主要部分,但没有一件事情能够成功。 我需要从Field.java java中的代码如下 package matedor; class Field{ private String name; private int number; public Field (String fieldname, int fieldnumber){ this.name = fieldname; this.number
Field.java
java中的代码如下
package matedor;
class Field{
private String name;
private int number;
public Field (String fieldname, int fieldnumber){
this.name = fieldname;
this.number= fieldnumber;
}
public String getFieldname(){
return name;
}
public int getFieldnumber(){
return number;
}
public String toString(){
return number+name;
}
public boolean equals(Object obj){
Field field = (Field) obj;
return (number == field.number && name.equals(field.name));
}
}
我主要需要生成以下不可编辑的内容:
fieldname1, fieldname2.....to fieldname40
我知道我必须使用ArrayList,我想创建40个字段实例,所以我从fieldname1到fieldname40。
我该怎么做
在我的主要工作中,我尝试执行以下操作,但得到了null语句
Field[] felterISpil=new Field[40];
System.out.println(Arrays.toString(felterISpil));
输出:
[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
您需要初始化。由于对象的默认值为
null
,因此您将得到null。您已经声明了,但尚未初始化
初始化时需要将String fieldname,
int fieldnumber
传递给构造函数。构造函数有两个参数String fieldname,int fieldnumber
public Field (String fieldname, int fieldnumber)
这就是为什么需要传递字符串和int
你应该把你想要的值传递给构造函数。如果你想测试它而不逐个初始化,下面的代码将初始化你的字段数组的所有元素
for(int i=0;i<felterISpil.length;i++){
felterISpil[i]=new Field("fieldname",1);
}
System.out.println(Arrays.toString(felterISpil));
for(int i=0;i首先请记住,您正在创建类Field的构造函数。因此在main()中,在通过执行此字段felterspi[]=new Field[40]创建字段类数组之后;然后在调用字段类的任何方法之前,您需要通过执行此felterspi[index]=new Field(FieldName,FieldNumber)创建它的对象;
正如你在你的构造器中指定的那样,它将。
felterSpil[0]=新字段(字段1,1);
然后,您可以调用任何方法,您将获得适当的值您需要为每个字段创建一个实例
请尝试以下操作:
List fields = new ArrayList();
for(int i = 1; i <= 40; i++){
fields.add(new Field("Field"+i, i));
}
List fields=new ArrayList();
对于(int i=1;我这样做时会出错。在Matedor中创建构造函数字段()。Field@user1098185您应该将字符串fieldname,int fieldnumber传递给构造函数,但不要给我任何意义,您想说的:)我想从类Field中创建它谢谢!这太完整了。@user1098185 felterispl[0]=新字段(“开始”,1);请保持括号样式一致,并正确设置代码格式。我的建议可能看起来不太合适,我是通过手机编写的,但已经达到了涵盖您所需内容的程度。好的。希望对您有所帮助
List fields = new ArrayList();
for(int i = 1; i <= 40; i++){
fields.add(new Field("Field"+i, i));
}