【问题标题】:Why would a stacktrace point to a closing brace in Java?为什么堆栈跟踪会指向 Java 中的右大括号?
【发布时间】:2017-04-06 16:20:23
【问题描述】:

如果您在 Java 中的右大括号上出现 NullPointerException,这意味着什么?比如说,对here

    SavedState() {
        this.iZone = DateTimeParserBucket.this.iZone;
        this.iOffset = DateTimeParserBucket.this.iOffset;
        this.iSavedFields = DateTimeParserBucket.this.iSavedFields;
        this.iSavedFieldsCount = DateTimeParserBucket.this.iSavedFieldsCount;
    } <-- Stack trace says NPE is thrown here

这是在堆栈跟踪中:

...
Caused by: java.lang.NullPointerException
    at org.joda.time.format.DateTimeParserBucket$SavedState.<init>(DateTimeParserBucket.java:521) ~[joda-time-2.9.5.jar:2.9.5]
...

【问题讨论】:

    标签: java debugging


    【解决方案1】:

    它指向大括号的唯一原因(除非事情非常糟糕)是源代码和正在运行的代码不同步。清理,重新运行并再次查看堆栈跟踪。

    在这种情况下,由于堆栈跟踪来自 joda-time,因此您可能正在查看错误版本的库的源代码。确保您正在查看版本 2.9.5 的源代码。

    【讨论】:

    • 或者可能涉及一些生成的代码,例如在使用 Lombok 时。
    猜你喜欢
    • 1970-01-01
    • 2014-09-30
    • 2022-08-18
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多