2015-04-08 3 views
0

Я хочу сделать массив размером 150 класса InfoИсключение нулевого указателя из класса массива

public class Info { 
    int Group; 
    String Name; 
} 

Но у меня есть исключение происходит после того, как

public class Mover { 
     static Info[] info=new Info[150]; 
      public static void main(String[] args) { 
      info[0].Group=2;//I get error here 
     } 
} 

Я не уверен, если есть это лучший способ сделать то, что нужно делать, но я не хочу использовать многомерный массив. Я просто пытаюсь добавить информацию в группу, поэтому я смущен.

+0

Сначала вы должны создать объект 'Info', тогда вы можете установить значение для его атрибута. –

+0

Вы должны инициализировать объект, прежде чем сможете использовать методы – poisonedYouth

+0

Назначить объекты в вашем массиве ... в настоящее время информация [0] ... информация [n] является нулевой, и любая операция над этими элементами массива приведет к NPE –

ответ

1

new Info[150] просто создает массив размером 150. Все элементы в массиве не были созданы и поэтому являются нулевыми.

Поэтому, когда вы делаете info[0], он возвращает null, и вы получаете доступ к null.Group.

Прежде всего, вы должны сделать info[0] = new Info().

+0

Знаете ли вы, как я могу сделать это в простой команде, а не набирать все это? Кстати, спасибо большое. – Avionix

+0

Да, вы можете сделать 'Arrays.fill (info, new Info())' и он будет создавать экземпляры всех элементов в массиве. –

0

Этот static Info[] info=new Info[150]; создает массив из 150 объектов типа, указывающих на NULL. Вы должны это сделать, чтобы получить эту работу

for(int i = 0; i< 150; i++) info[i] = new Info();

Затем вы можете использовать эти объекты

0

пройти через некоторого учебник первого Java Arrays

Вам необходимо инициализировать элементы массива, как:

info[0] = new Info() 

От JLS 10.6. Array Initializers

Инициализатор массива может быть указан в объявлении (§8.3, §9.3, §14.4) или как часть выражения создания массива (§15.10) для создания массива и предоставления некоторых начальных значений.

Смежные вопросы