Elements
最编程
2024-07-22 12:15:57
...
测试一个方法(作为给定类型的成员)是否覆盖另一个方法。
当非抽象方法覆盖抽象方法时,前者也被称为实现后者。
在最简单和最典型的用法中, type
参数的值将只是直接包含overrider
(可能重写方法)的类或接口。 例如,假设m1
表示方法String.hashCode
并且m2
表示Object.hashCode
。 然后我们可以询问m1
是否覆盖了m2
类中的String
(确实如此):
assert elements.overrides(m1, m2, elements.getTypeElement("java.lang.String"));
更有趣的情况下,可以通过下面的例子,其中在类型的方法来说明A
不会型覆盖一个类似命名方法B
:
当作为第三类型的成员观看class A { public void m() {} }
interface B { void m(); }
...m1 = ...; // A.m
m2 = ...; // B.m
assert ! elements.overrides(m1, m2, elements.getTypeElement("A"));
C
,然而,在该方法A
并覆盖一个在B
:
class C extends A implements B {}
...assert elements.overrides(m1, m2, elements.getTypeElement("C"));
上一篇: AbstractMap