public class TestDogs {
public static void main(String [] args) {
Dog [][] theDogs = new Dog[3][];
System.out.println(theDogs[2][0].toString());
}
}
class Dog{ }
ответ
theDogs[2]
массив имеет значение null, так как вы его не инициализировали. Даже это вы его инициализировали, theDogs[2][0]
все равно было бы нулевым, поэтому при вызове toString
на нем все равно будет стоять NullPointerException
.
Пример как инициализировать массив и экземпляр собаки:
Dog [][] theDogs = new Dog[3][];
theDogs[2] = new Dog[7]; // initialize the 3rd row of theDogs 2D array
theDogs[2][0] = new Dog(); // initialize the Dog instance at the 1st column of the 3rd row
System.out.println(theDogs[2][0].toString()); // now you can execute methods of theDogs[2][0]
Как «Собака [] [] theDogs = new Dog [3] [ ];» отличается от «Dog theDogs = new Dog();»? –
@arjunhegde Первый инициализирует массив, который может содержать ссылки Dog [] (т. Е. Массивы Dog). Каждый элемент массива инициализируется нулем. Второй создает один экземпляр класса Dog. – Eran
new Dog[3][];
создает новый массив для хранения Dog[]
экземпляров. Вам нужно будет добавить Dog[]
экземпляров.
theDogs[2][0]
предоставит вам NPE. На самом деле, theDogs[2]
не инициализирован, поэтому это даст вам NPE даже до перехода на theDogs[2][0]
.
Нет, 'new Dog [3] []' создает новый массив для хранения ссылок на 'Dog []' экземпляры (т. Е. Массивы). Это 'theDogs [2]', который здесь null, - он не доходит до нулевой ссылки «Собака». –
Как «Собака [] [] theDogs = new Dog [3] [];" отличается от «Dog theDogs = new Dog();»? –
- 1. setPixel() возвращает исключение NullPointerException
- 2. Клиент CXF возвращает исключение NullPointerException
- 3. Почему этот код НЕ возвращает исключение NullPointerException?
- 4. Gradle build DeployApkTask.perform возвращает исключение NullPointerException
- 5. NullPointerException, иногда он запускается, и иногда он генерирует исключение
- 6. Как отлаживать исключение NullPointerException?
- 7. Как устранить исключение NullPointerException?
- 8. Как исправить исключение NullPointerException?
- 9. Почему существует исключение NullPointerException?
- 10. GridWorld getAdjacentLocation() возвращает NullPointerException?
- 11. подавляющее исключение NullPointerException в Mockito?
- 12. Как обрабатывать исключение NullpointerException, когда запрос вызывает исключение?
- 13. AuthenticationManager возвращает NullPointerException
- 14. DAO возвращает NullPointerException
- 15. Как исправить это исключение NullPointerException?
- 16. Как исправить это исключение NullPointerException?
- 17. sendDataMessage() возвращает NullPointerException
- 18. Исключение NullPointerException из фрагмента
- 19. Android: JSONParser возвращает NullPointerException
- 20. ActionBar возвращает NullPointerException
- 21. Почему NumberFormat.format выбрасывает исключение NullPointerException?
- 22. Android-адрес: исключение NullPointerException
- 23. Android addOnGesturePerformedListener возвращает NullPointerException
- 24. String.split() генерирует исключение NullPointerException
- 25. Почему существует исключение NullPointerException?
- 26. getResourceAsStream возвращает NullpointerException
- 27. KeyEvent возвращает NullPointerException; как определить e?
- 28. тест android.util.Patterns блок возвращает NullPointerException
- 29. Achartengine XYChart.toScreenPoint всегда возвращает NULLPointerException
- 30. Azure MobileService возвращает NullPointerException (Android)
[2D-массивы] (http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm) –