【问题标题】:How can I get the method inheritance info?如何获取方法继承信息?
【发布时间】:2011-04-08 04:09:24
【问题描述】:

假设 Dog 类扩展了抽象类 Animal 并实现了 Play 类。 然后,在 Dog 类中,它实现了继承的抽象方法 Animal.eat() 和 Play.jump()。 想象在 Eclipse 中,Dog.eat() 和 Dog.jump() 的左边会有一个小三角形。如果你把鼠标放在小三角形上,它会告诉你这个方法实现了哪个类的哪个抽象方法。

我想知道这个方法继承信息是如何获得的。我的问题是:如果我有一组 .java 文件,没有 IDE 的任何帮助,我如何提取与 Eclipse 相同的方法继承信息(比如这个方法实现了哪个类中的哪个抽象方法)?

我可以想到一种方法:给定类Dog,我首先获取这个类Animal和Play的继承信息。然后我比较 Dog 和 Animal/Play 中的所有方法签名,看看哪个实现了什么。但是这种方法似乎有点幼稚,而且可能效率不高。所以请让我知道是否有任何好的方法可以用来获取方法继承信息。

谢谢!

【问题讨论】:

    标签: java inheritance methods


    【解决方案1】:

    您可以使用 java Reflection 找出超类。

    【讨论】:

    • 看来java Reflection值得一试。感谢您提供此信息!
    【解决方案2】:

    我认为您概述的方法是唯一的方法。我对此可能是错误的,但是知道从给定接口/类继承哪些方法的唯一方法是检查接口,因此,您必须在给定接口中搜索给定方法的某个时间点或另一个。我想 Eclipse 会基于继承结构构建一个方法列表,当您将鼠标悬停在给定类中的方法上时,请查阅该表以查看它来自哪个类/接口。最后一部分只是一个猜测。

    【讨论】:

      猜你喜欢
      • 2020-08-27
      • 2021-04-12
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 2017-05-14
      相关资源
      最近更新 更多