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