java命名空间javax.lang.model.util接口elements的类成员方法:
overrides定义及介绍
本文导语:
overrides
boolean overrides(executableelement overrider,
executableelement overridden,
typeelement type)
测试一个方法(作为给定类型的成员)是否重写了另一个方法。当非抽象方法重写抽象方法时,还可以说成是前者实...
boolean overrides(executableelement overrider,
executableelement overridden,
typeelement type)
- 测试一个方法(作为给定类型的成员)是否重写了另一个方法。当非抽象方法重写抽象方法时,还可以说成是前者实现 了后者。
在最简单且最典型的用法中,type 参数的值就是直接封装 overrider(可能重写的方法)的类或接口。例如,假设 m1 表示方法 string.hashcode,而 m2 表示 object.hashcode。可以询问 m1 是否重写了 string 类中的 m2(它的确重写了该方法):
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"));
- 参数:
overrider - 第一个方法,可能是 overrideroverridden - 第二个方法,可能被重写type - 第一个方法是其成员的类型
- 返回:
- 当且仅当第一个方法重写第二个方法时返回
true