gpt4 book ai didi

java - 类声明导致空指针异常

转载 作者:行者123 更新时间:2023-12-02 00:26:42 25 4
gpt4 key购买 nike

我的程序由于空指针异常而崩溃。

堆栈跟踪片段:

java.lang.NullPointerException
at com.my.GRTRecTimeSortComparator.compare(SourceFile:15)

这很好。但我的问题是第 15 行是类声明:

15 public class GRTRecTimeSortComparator   implements Comparator<GRTRecord> {
16 @Override
17 public int compare(GRTRecord rec1, GRTRecord rec2) {
18
19 int returnVal=rec1.getRecordCalendar().compareTo(rec2.getRecordCalendar());
20 return returnVal;
21 }
22}

它调用了 Compare 函数,但我也没有发现这有什么问题。每条记录还分配有一个唯一的日历。

有什么想法吗?我在这里做错了什么?

编辑:回应查询:

不,这个类本身并没有什么奇怪的,除了我写的这个事实。

我正在使用 Proguard。也许混淆错误地替换了东西?

我现在正在编写测试记录。它们不应该为 nullCalendars 也不应该为 null;我之前就使用过它们,并取得了很好的效果。

也许我只是错误地传递了ArrayList

编辑2:

插入到类中的日志行永远不会运行。无论我向类添加或执行什么操作,空指针始终解析为类声明行。

删除了 Proguard 混淆,但仍然没有骰子。

我真的很沮丧。

编辑3:

对于 future 的用户:

Proguard 会破坏你的堆栈跟踪。这就是上面的原因。如果遇到问题,请删除 proguard。

原因实际上是数据集中的一条损坏的记录。

最佳答案

我强烈怀疑调试信息不​​同步。将日志记录放入您的 compare 方法中。我会记录(按顺序):

  • rec1
  • rec2
  • rec1.getRecordCalendar()
  • rec2.getRecordCalendar()

如果这不是问题,那么这个类是否还有其他“奇怪”的地方?例如:

  • 您是否使用 Hibernate 或类似的工具来为您创建代理?
  • 这是一个内部类吗?

关于java - 类声明导致空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9893673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com