Вы не можете напрямую вызвать переменную (потому что это личное поле). Вместо этого вы должны использовать stackStorage.size()
. Также убедитесь, что stackStorage фактически создан.
Вы, скорее всего, есть:
ArrayList<Object> stackStorage;
Однако вы должны создать его экземпляр куда-нибудь так:
stackStorage = new ArrayList<Object>();
Это может быть также сделано на той же строке:
ArrayList<Object> stackStorage = new ArrayList<Object>();
Как только вы создали это ArrayList
Заметьте, что в нем нет элементов. Для того, чтобы на самом деле добавить в Integer
в массив просто сделать:
stackStorage.add(number);
И после того, как вы сделаете это, если вы звоните stackStorage.size()
он должен вернуть 1, что означает, что есть один элемент в ArrayList
. Если вы хотите добавить еще, просто используйте метод add()
. Также убедитесь, что вы добавили тот же объект, с которым вы его создавали. Например, вы не можете хранить String
в ArrayList<Integer>
.
пример Полный код:
ArrayList<Integer> stackStorage = new ArrayList<Integer>();
stackStorage.add(10); //Now has value `10` in `index[0]`
System.out.println("index[0]: " + stackStorage.get(0)); //Prints 10
System.out.println("stackStorage.size() = " + stackStorage.size()) //Prints 1
В вашем случае замените Object
с Integer
, если вы хотите хранить целые числа. NullPointerException
означает, что ваш объект по-прежнему null
, когда вы пытались позвонить size()
. Это должно решить вашу проблему. Если вы не уверены, что null
или не совсем понял, что такое NPE (NullPointException), я предлагаю прочитать об этом, и если у вас возникнут дополнительные трудности, разместите его здесь.
Ваш стекStorage равен null. – MTilsted
Поделитесь своим кодом .. – SMA
Привет, просто обновляю вопрос, был ли вопрос решен. – Juxhin