我正在用Commons Digester解析XML文件,但我不明白我的代码有什么问题:我被这个java.lang.NullPointerException困扰。

这是代码:http://pastie.org/1708374

这是一个例外:http://pastie.org/1708371

我猜这是一个愚蠢的错误

谢谢

最佳答案

好吧,这就是问题所在:

if (centroids.length == 0)


据我所知,您永远不会为centroids分配一个值,因此该值始终为null。然后,当您尝试在上一行中取消引用它时,它将抛出NullPointerException

下一行代码尝试使用centroids[0]的第一行表明您不太了解Java数组。也许您真的想要某个描述的List吗?

我还强烈建议您创建一个具有标题,描述,标签,时间和事件属性的类型(例如Map<String, String>),而不是始终具有相同五个键的Centroid。然后,您可以将centroids设置为List<Centroid>

List<Centroid> centroids = new ArrayList<Centroid>();


然后当您获得一些数据时...

Centroid centroid = new Centroid(...);
centroids.add(centroid);


哦,您目前也正在使用==比较字符串...请不要这样做:请使用equals,否则您将要比较字符串引用。

10-07 13:42