2013-12-05 4 views
1

У меня есть 100 записей данных, которые поступают в мою систему из службы. Я хочу создать 100 объектов класса для каждой записи для ее сериализации в свой пользовательский класс. Я делал это создание памяти внутри для цикла следующегоСоздание массива пользовательских объектов в java

for(int i=0; i < 100; i++) 
{ 
SomeClass s1 = new SomeClass(); 
//here i assign data to s1 that i received from service 
} 

Есть ли способ, чтобы создать все 100 объектов за пределами массива и просто присвоить данные внутри для цикла.

I already tried Array.newInstance and SomeClass[] s1 = new SomeClass[100] 

Оба результата приводят к массиву нулевых указателей. Есть ли способ, которым я могу выделить всю память за пределами цикла for.

+1

Не думать о нем, как «создание памяти» (в факт, память уже была создана на каком-то азиатском заводе, а теперь находится на вашем компьютере в виде чипа). Подумайте об этом как создании экземпляра класса. – Ingo

ответ

17

Когда вы сделаете это:

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; 
} 
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()); 
    } 
} 
Смежные вопросы