gpt4 book ai didi

java - 使用主体强制覆盖/扩展方法

转载 作者:太空宇宙 更新时间:2023-11-04 13:52:36 25 4
gpt4 key购买 nike

我正在寻找一种方法来轻松且频繁地强制用户覆盖已有主体的方法,调用 super 并可能添加一些代码。简单的例子是外部化过程,粗心的用户扩展类忘记覆盖外部化,这会导致以后不必要的麻烦,当其他人尝试外部化该对象时,发现它没有实现,并且必须理解别人的代码才能编写外部化。

我无法找到不包括将大多数类抽象化(这会破坏它们的使用)的可接受的解决方案。

是否可以使用注释做类似的事情?

class Bar{
@SuggestOverride
@Override
public void foo(){}
}

这样,只要 foo() 没有被覆盖,IDE 就可以对用户扩展 Bar 喊叫。 (至少警告)(IDE Eclipse/Netbeans)

我对注释不是很熟悉,我不确定是否值得深入研究,只是为了发现它根本不可能。如果有人提出解决方案,我将非常感激。

谨致问候,沃伊捷赫凯撒

编辑:我可能不够清楚,这里是示例代码

abstract class Foo{
public abstract void method();
}

//instantiable
class Bar extends Foo{
@Override
public void method() {
//some code
}
}

//instantiable
class Socks extends Bar{
//doesn't know about 'method'
}

最佳答案

也许可以选择具有包含抽象主体的基方法的抽象类:

abstract class Bar {

public final void foo() {
// add the base code for your method here
// ...
this.additionalWork();
}

// part that has to be overwritten
public abstract void additionalWork();

}

关于java - 使用主体强制覆盖/扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30150026/

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