java实现编译时警告
让我们假设我有三门课,如下所示
class A { //Master class.
public int getNum() {
return 1;
}
}
class B extends A {
@Override
public int getNum() {
return 2;
}
}
class C extends A {
@Override
public int getNum() {
return 3;
}
}
现在,如果我需要再创建一个方法(比如C类上的getRandNum()),在编译时是否有任何注释或方法警告我该方法只存在于C类中,而不存在于A类(主类)中?可能是类似“ShowNotImplementedOnMasterClassWarning”这样的注释
另外,有没有办法在上述规则中添加例外?也许可以在类C中创建一个不需要在类a中的方法,使用诸如“SuppressNotImplementedOnMasterClassWarning”之类的注释
编辑:问题是我现在有一个非常大的代码库,在编写单个方法时,@Override注释被开发人员忽略了,我找不到哪些是被重写的方法,哪些不是
那么,有没有办法强制所有方法在默认情况下使用@Override注释,并在检查后仅对我不需要的方法执行@SuppressOverride
# 1 楼答案
简单
C
中的所有方法都有@Override
注释。如果没有任何内容可以覆盖,则会出现错误李>@Override
注释# 2 楼答案
你为什么要这么做
如果类
C
中有一个不在A
中的方法,如果您试图在A
对象上调用它,自然会出错:如果您打算在每个类中都使用该方法,并且希望得到此警告,因为您担心可能会忘记将其添加到每个需要它的类中,请不要担心。只要把这个方法放在
A
和B
中,C
就会自动继承它由于首先不需要此警告,因此不需要任何东西来抑制它。只需在
C
中编写一个普通方法,它将只在C
中