为了账号安全,请及时绑定邮箱和手机立即绑定

是否有一种有效的方法可以使覆盖方法的相关接口透明

是否有一种有效的方法可以使覆盖方法的相关接口透明

一只甜甜圈 2022-06-08 17:31:27
我有一个实现多个接口的类。通过接口,我在来自各种接口的代码中有许多被覆盖的方法:public class myClass implementing IF1, IF2, IF3, .... () {....@Overridemethod1 () { ...} <-- from IF2method2 () { ...} <-- from IF1method3 () { ...} <-- from IF2method4 () { ...} <-- from IF2method5 () { ...} <-- from IF3method6 () { ...} <-- from IFxy}我反复有一个问题,我想知道覆盖的方法属于哪个接口并导航到相应的接口。是否有一种优雅的方法可以使方法与接口的关系可见/透明?
查看完整描述

4 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您可以在源接口中编写方法注释并使用@inheritDoc注释来继承实现类中的这些注释,例如:


/**

 * {@inheritDoc}

 */

@Override

public void method1(){


}

这是文档,这就是它所说的:


从“最近的”可继承类或可实现接口继承(复制)文档到此标记位置的当前文档注释中。这使您可以在继承树的更高位置编写更一般的注释,并围绕复制的文本进行书写。


查看完整回答
反对 回复 2022-06-08
?
森林海

TA贡献2011条经验 获得超2个赞

不可能在 Java 代码中使其显式化。将此与 C# 进行对比,例如:


class MyClass : Interface1, Interface2 {

    override Interface1.Method1 {...}

    override Interface2.Method1 {...}

}

请注意,在上面的 C# 代码中,有两个名称相同但覆盖不同接口的方法。这在 Java 中是不可能的。如果两个实现的接口具有相同的方法,则在 Java 中只能有一个方法同时覆盖两个接口的方法。因此,实际上不可能在代码中说明某个方法覆盖了哪个接口。它覆盖所有接口中的所有同名方法。


但是,您可以添加评论。此外,如果您添加 Javadoc 注释,则生成的文档将自动显示“由接口 yyyy 中的方法 xxx 指定”。


查看完整回答
反对 回复 2022-06-08
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

据我所知,没有“干净”的方式。我一直在做的是使用我喜欢的 IDE 来自动生成这些方法。我将继续从 IF1 生成所有方法,然后从 IF2 生成所有方法,依此类推。您也可以使用方法名称。也许称它们为 IF1Method1、IF1Method2、IF2Method1……等等。



查看完整回答
反对 回复 2022-06-08
?
MMTTMM

TA贡献1869条经验 获得超4个赞

只需生成javadoc

如果给定类中的方法 m() 实现了接口中的方法,Javadoc 工具将在 m() 的文档中生成一个子标题“指定者”,并带有指向它正在实现的方法的链接。

示例:https://docs.oracle.com/javase/7/docs/api/java/lang/Short.html#compareTo(java.lang.Short)


查看完整回答
反对 回复 2022-06-08
  • 4 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号