在我的项目中,我使用log4j来记录错误和许多框架:AOP,spring等。
当我在我的stacktrace中调用第一行时,这是什么意思,例如:
com.foo.bar.MyException: Error
at com.foo.bar.MyClass.handleException(MyClass.java:92)
at com.foo.bar.MyClass.myMethod(MyClass.java:76)
at com.foo.bar.MyClass.myMethod(MyClass.java:1) // <- here ???
...
在第一行,我的班级是评论,一切都正确编译
MyClass.java:
/* Copyright 2011 */
package com.foo.bar;
import ...
public class MyClass implements MyInterface {...
答案 0 :(得分:5)
我在调试过程中也看到过这种现象 - 步入某个方法有时会首先跳转到声明的类的第一行,然后然后实际的方法。如果没有能够为您提供参考,我认为它与在某些情况下调度重写方法有关(协变返回类型至少为一个)。在这些情况下,编译器需要插入一个在“真实”方法之前调用的合成桥接方法,我猜这个方法的有效行号为1。
无论如何,我认为你不必担心 - 正如你所看到的,你自己的myMethod
实现会在紧随其后的第76行被成功调用。