方法一:问题是
说明受让人资源新问题
-无用的覆盖方法:覆盖方法仅调用super
-覆盖
executeImpl
class A {
protected void executeImpl(){
// blah blah
}}
class B extends A{
protected void executeImpl(){
super.executeImpl();
}}
class C{
@Inject B b;
protected void executeCall(){
b.executeImpl();
}
}
如果我删除覆盖的方法:
Java错误:
类型B的方法executeImpl()不是
可见
class A {
protected void executeImpl(){
// blah blah
}}
class B extends A{
}
class C{
@Inject B b;
protected void executeCall(){
b.executeImpl();
}
}
我应该采取什么措施来消除声纳小问题。
最佳答案
我会说您必须重新考虑您的包装结构。我认为A
与B
和C
在另一个包中。因此,C
无法访问A
中的受保护方法,但如果在B
中覆盖它,则C
可以访问它。
您可以在executeImpl()
中将A
公开。
将A
,B
和C
全部移至同一程序包,或
只需忽略此问题或将其标记为false
积极的解释。