我正在用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
,否则您将要比较字符串引用。