创建具有多个阵列的对象


有没有一种更简单的方法可以将文件的多行设置到一个对象中,而不必全部键入我有一个json数组,它已经将一个文件解析为一个数组我已将每个元素设置为可变
id = array[0];   
name = array[1];
position = array[2];

并将其放入for循环中,将其输入到我创建的对象类中。

for (int ii = 0; ii < array.length(); ii++)
{
Employee [] employee {new Employees (id, name, position)};
}

我试图打印出对象类,但它只是将每个对象存储到自己的separe对象中,而不是一个大对象中唯一的办法是做

Employee[] employee = {
new Employee(1210, "Bob", ceo),
new Employee(2210, "Tom", manager),
new Employee(3210, "Terry", teacher),
new Employee(40211 "Joe", student)
}; 

然而,我的文件代码是1000多行,我无法将其全部输入,有没有更快的方法可以做到这一点,或者有一个技巧可以让for循环丢失

此外我试图从我的对象类调用我的toString方法,我完成了System.out.println(employee.toString(((,但它打印出来了:排序之前=>[雇员;@a09ee92排序=>[雇员;@a09ee92地址内存而不是实际值后,Arrays.toString确实有效,尽管我不能使用ADT的

谢谢

我认为您是有意这样做的,但您需要将所有信息放入单独的数组中(或者使用注释中建议的JSON解析器(。假定源数组的长度都相同。

Employee[] employees = new Employee[id.length];
for (int ii = 0; ii < array.length(); ii++) {
// if you don't have all the information in three arrays
// and you need to create each array of three items as you read
// the file you could do that here.
employees [ii]  = new Employee(id[ii], name[ii], position[ii])};
}

然后打印它们,你可以这样做。

System.out.println(Arrays.toString(employees));

或者使用for循环遍历列表。请注意,为了使输出有意义,您需要重写Employee类中的toString()方法。

最新更新