gpt4 book ai didi

java注释不调用重写的方法

转载 作者:行者123 更新时间:2023-12-01 06:25:51 24 4
gpt4 key购买 nike

我有两个类 Foo 和 Bar,其中 Bar 扩展了 Foo。

在父类(super class)中,有一个方法f()。子类重写此方法并故意抛出异常,以便永远不会在 Bar 的实例上调用 f()。

class Foo {
public void f() {
// does something useful
}

}


class Bar extends Foo {
@Override
public void f() {
throw new UnsupportedOperationException("Srsly, thou shalt not");
}
}

现在我的问题是:是否有一些注释可以在与 Eclipse 等 IDE 通信的重写方法上使用,但不应调用它?我发现自己想稍微滥用 @deprecated 标签,以便当用户处理 Bar 的实例时,Eclipse 中的自动完成列表 划掉方法 ,但我想知道是否有是一个更好的选择。

class Bar extends Foo {

/**
* @deprecated
*/
@Override
public void f() {
throw new UnsupportedOperationException("Srsly, thou shalt not");
}
}

最佳答案

不,不是真的,因为 Java 中的所有(非静态)方法都是虚拟的,并且调用是在运行时解析的。换句话说,编译器无法检测到该方法的 Bar 版本将在运行时被调用。

关于java注释不调用重写的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15036307/

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