堆栈跟踪线中引用的基类?

时间:2012-06-16 13:01:10

标签: java eclipse override stack-trace superclass

调试java代码时,在堆栈跟踪中,我注意到以下内容

ToyotaCar(AbstractCar).handle()行:40

看起来大括号中的类是基类。 eclipse会不会显示基类?

1 个答案:

答案 0 :(得分:2)

如果调用基类的方法,则堆栈行将显示基类(定义方法的位置)和调用此类方法的对象的类。

我在这里假设您做了类似

的事情
ToyotaCar car = new ToyotaCar();
car.handle();

其中ToyotaCar未覆盖handle()方法。堆栈跟踪会通知您,handle()的实际ToyotaCar未提供AbstractCar的来电,而是ToyotaCar。但是,您在handle()对象上调用了它。

如果不重写基类方法,那么堆栈行的这种表示法可能看起来过多。但是,请考虑您要覆盖handle()方法的情况,但仍需要在AbstractCar上调用super.handle(); 。您需要发出

ToyotaCar.handle()

handle()内。在ToyotaCar对象上调用ToyotaCar方法时,您首先将其称为AbstractCar,然后将其称为{{1}}。两条堆叠线将明确地允许您告诉另一条电话。