我有100条数据记录从服务进入我的系统。我想为每个记录创建100个类对象,以将其序列化为我的自定义类。我在for循环中创建了这个内存,如下所示
for(int i=0; i < 100; i++)
{
SomeClass s1 = new SomeClass();
//here i assign data to s1 that i received from service
}
有没有办法在数组外部创建所有100个对象,只需在for循环中分配数据。
I already tried Array.newInstance and SomeClass[] s1 = new SomeClass[100]
两者都会产生空指针数组。有没有办法可以在for循环之外分配所有内存。
答案 0 :(得分:18)
执行此操作时:
Object[] myArray = new Object[100]
Java分配100个位置来放置对象。它不会为你实例化对象。
你可以这样做:
SomeClass[] array = new SomeClass[100];
for (int i = 0; i < 100; i++) {
SomeClass someObject = new SomeClass();
// set properties
array[i] = someObject;
}
答案 1 :(得分:0)
在单行创建自定义对象数组时,我发现下面非常有用:
public class Hotel {
private int frequency;
private String name;
public Hotel(int frequency,String name){
this.frequency = frequency;
this.name = name;
}
}
public class PriorityQueueTester {
public static void main(String args[]){
Queue<Hotel> hotelPQ = new PriorityQueue<Hotel>();
Hotel h[] = new Hotel[]{new Hotel(4,"Harshil"),new Hotel(5,"Devarshi"),new Hotel(6,"Mansi")};
System.out.println(h[0].getName() + " "+h[1].getName()+" "+h[2].getName());
}
}