Ram*_*igi 2 java nullpointerexception
我编写了一个简短的脚本来了解Java数组:
class Dog {
String name;
void bark() {
System.out.println(name + " is barking");
}
void eat() {
System.out.println(name + " is eating");
}
}
class mypets {
public static void main(String [] args) {
Dog dogA = new Dog();
dogA.name="Lassy";
dogA.bark();
dogA.eat();
Dog[] myDogs = new Dog[3];
myDogs[0].name = "Barney";
myDogs[0].bark();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我编译并运行我的程序:
C:\Java>javac mypets.java
C:\Java>java mypets
Lassy is barking
Lassy is eating
Exception in thread "main" java.lang.NullPointerException
at mypets.main(mypets.java:22)
Run Code Online (Sandbox Code Playgroud)
我做错了什么?我尝试使用谷歌搜索可怕的"java.lang.NullPointerException"但老实说我现在很困惑.
数组就像一排可以容纳物体的盒子; 但是,在创建数组时,这些框是空的.这NullPointerException是Java告诉你的方式.所以,当你说的时候
Dog[] myDogs = new Dog[3];
myDogs[0].name = "Barney";
Run Code Online (Sandbox Code Playgroud)
你想设置的名称Dog在第一个框中,但就是没有这样的Dog-盒子是空的.你需要Dog在框中放置一个来完成这项工作:
Dog[] myDogs = new Dog[3];
myDogs[0] = new Dog();
myDogs[0].name = "Barney";
Run Code Online (Sandbox Code Playgroud)
然后它会工作.
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |