我有一个2D数组,我需要将数组的每个“行”转换为一个单独的对象数组元素,其中包含一个String,一个Int和多个Doubles。现在每个2D数组元素都存储为String。
这是我的类对象:
public Object() {
String = "null";
Double1 = -1.0;
Double2 = -1.0;
Double3 = -1.0;
Integer = -1;
}
这是我用于将2D数组转换为类数组的方法:
public static void objectConvert() {
Object[] objArray = new Object[count];
for (int i = 0; i<count; i++) {
objArray[i] = new Object(data[i][0], Double.parseDouble(data[i][1]), Double.parseDouble(data[i][2]), Double.parseDouble(data[i][3]), Integer.parseInt(data[i][4]));
}
System.out.println(objArray[0]);
System.out.println(objArray[1]);
}
以下是编译时出现的错误:
javac Program.java
Program.java:42: error: constructor Object in class Object cannot be applied to given types;
Object[i] = new Object(data[i][0],
Double.parseDouble(data[i][1]), Double.parseDouble(data[i][2]), Double.parseDouble(data[i][3]), Integer.parseInt(data[i][4]));
^
required: no arguments
found: String,double,double,double,int
reason: actual and formal argument lists differ in length
1 error
答案 0 :(得分:1)
在objArray[i]
循环内进行分配时,使用Object[i]
代替for
。
还有一个错误,您尚未定义一个构造函数,该构造函数需要String,double,double,double,int
并考虑将您的类从Object
重命名为其他内容。
你的构造函数可以是这样的:
public Object(String a, Double b, Double c, Double d, Integer e) {
string = a;
double1 = b;
double2 = b;
double3 = d;
integer = e;
}
答案 1 :(得分:0)
Object [i] = new Object(data [i] [0],Double.parseDouble(data [i] [1]),Double.parseDouble(data [i] [2]), Double.parseDouble(data [i] [3]),Integer.parseInt(data [i] [4]));
它的
objArray[i]= new Object(data[i][0], Double.parseDouble(data[i][1]), Double.parseDouble(data[i][2]), Double.parseDouble(data[i][3]), Integer.parseInt(data[i][4]));
您的类Object必须具有读取5参数的构造函数 (String,double,double,double,Integer)