我在代码的一部分中遇到了NullPointerException问题。但是我找不到或看不到该问题的解决方案。
这是我的编码:
awk '{
if (!/simsX.ip-17-31-28-19/) { a[".*Unauthorized.*Dup.*"] += gsub("(| ).*Unauthorized.*Duplication.*( |)", "&") }
if (!/simsX.ip/) { a[".*En_NoConn-.*"] += gsub("(| ).*En_NoConn-.*( |)", "&")
}
'
public class Beurs
private HashMap<String, Aandeel> lijstAandelen;
private HashSet<String> lijstKeys;
/**
* Maak een constructor van de klasse Beurs
*/
public void Beurs()
{
lijstAandelen = new HashMap<>();
lijstKeys = new HashSet<>();
}
public void addAandeel(Aandeel aandeel)
{
if(aandeel != null){
String code = aandeel.getCode();
lijstAandelen.put(code, aandeel);
lijstKeys.add(aandeel.getCode());
}
}
包含一个对象,代码也包含一个有效的String。
因此,NullPointerException抛出:
lijstAandelen.put(code,aandeel);
可能我正在查看它,希望我能帮助我。
Aandeel编码:
aandeel
nullpointerException:java.lang.NullPointerException在 Beurs.addAandeel(Beurs.java:35)在Hoofd.main(Hoofd.java:31)
public class Aandeel
private String code;
private String naam;
private double dividend;
private double[] waarden;
public Aandeel(String code, String naam, double dividend, double[] tab)
{
this.code = code;
this.naam = naam;
setDividend(dividend);
waarden = new double[12];
setWaarden(tab);
}
public String getCode()
{
return code;
}
答案 0 :(得分:1)
更改Beurs类的这一行:
public void Beurs()
对此:
public Beurs()
您可以检查if语句中的code
是否为null。像这样:
if(aandeel != null && aandeel.getCode() != null)
答案 1 :(得分:1)
您的类正在调用默认的空构造函数,因为您创建了具有返回类型的构造函数,该返回类型具有正确的方法语法。
public void Beurs()
{
lijstAandelen = new HashMap<>();
lijstKeys = new HashSet<>();
}
这就是为什么您的地图为空的原因。
答案 2 :(得分:0)
构造函数没有返回类型,因此您的构造函数定义错误
public void Beurs()//错误
因此Beurs类没有构造函数,因此它正在调用空构造函数,并且lijstAandelen,lijstAandelen没有初始化
顺便说一句,您应该像下面在Beurs类中那样更改构造函数
public Beurs()
{
lijstAandelen = new HashMap<>();
lijstKeys = new HashSet<>();
}