为什么stacktrace指向Java中的右括号?

Nik*_*Nik 1 java debugging

如果你NullPointerException在Java中获得一个结束括号,这意味着什么?比如说,就在这里:

    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
Run Code Online (Sandbox Code Playgroud)

这是在堆栈跟踪中:

...
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]
...
Run Code Online (Sandbox Code Playgroud)

Kay*_*man 5

唯一的原因(除非事情非常破坏),如果源和正在运行的代码不同步,它将指向一个大括号.清理,重新运行并再次查看堆栈跟踪.

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