我有一个包含1个界面和2个类的项目: -
public interface Account {
int add();
}
public class AccountImpl implements Account{
@Override
public int add() {
return 0;
}
}
和1个主要方法
public class Testing {
Account account;
public static void main(String[] args) {
Testing t = new Testing();
t.call();
}
public void call() {
int a = account.add();
}
}
我在行int a = account.add();
中获得Null指针异常,因为帐户值为空。
我是java的新手,请你帮忙删除它?
答案 0 :(得分:0)
在call
函数中调用main
时,私有变量account
未初始化。这意味着你从来没有给它一个价值;它没有指向一个对象(它是一个“空指针”指向什么)。因此,您无法调用该对象的方法。
要解决此问题,您需要先初始化变量。例如,在Testing
类的构造函数中:
public Testing () {
account = new AccountImpl();
}
答案 1 :(得分:0)
您尚未实例化AccountImpl
要调用的实例;你得到的例外情况通常被称为“你还没有做出其中一个”。
public class Testing {
Account account;
public static void main(String[] args) {
Testing t = new Testing();
t.call();
}
public void call() {
account = new AccountImpl();
int a = account.add();
}
}
答案 2 :(得分:0)
您尚未初始化帐户。你最好这样做。
Account account = new AccountImpl();
在Test类的第一行。