本文整理汇总了Java中com.sun.tools.apt.mirror.declaration.DeclarationImpl类的典型用法代码示例。如果您正苦于以下问题:Java DeclarationImpl类的具体用法?Java DeclarationImpl怎么用?Java DeclarationImpl使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DeclarationImpl类属于com.sun.tools.apt.mirror.declaration包,在下文中一共展示了DeclarationImpl类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: hides
import com.sun.tools.apt.mirror.declaration.DeclarationImpl; //导入依赖的package包/类
/**
* {@inheritDoc}
* See JLS 2 sections 8.3 and 8.4.6.
*/
public boolean hides(MemberDeclaration sub, MemberDeclaration sup) {
Symbol hider = ((DeclarationImpl) sub).sym;
Symbol hidee = ((DeclarationImpl) sup).sym;
// Fields only hide fields; methods only methods; types only types.
// Names must match. Nothing hides itself (just try it).
if (hider == hidee ||
hider.kind != hidee.kind ||
hider.name != hidee.name) {
return false;
}
// Only static methods can hide other methods.
// Methods only hide methods with matching signatures.
if (hider.kind == MTH) {
if ((hider.flags() & Flags.STATIC) == 0 ||
!env.jctypes.isSubSignature(hider.type, hidee.type)) {
return false;
}
}
// Hider must be in a subclass of hidee's class.
// Note that if M1 hides M2, and M2 hides M3, and M3 is accessible
// in M1's class, then M1 and M2 both hide M3.
ClassSymbol hiderClass = hider.owner.enclClass();
ClassSymbol hideeClass = hidee.owner.enclClass();
if (hiderClass == null || hideeClass == null ||
!hiderClass.isSubClass(hideeClass, env.jctypes)) {
return false;
}
// Hidee must be accessible in hider's class.
// The method isInheritedIn is poorly named: it checks only access.
return hidee.isInheritedIn(hiderClass, env.jctypes);
}
示例2: hides
import com.sun.tools.apt.mirror.declaration.DeclarationImpl; //导入依赖的package包/类
/**
* {@inheritDoc}
* See sections 8.3 and 8.4.6 of
* <cite>The Java™ Language Specification</cite>
*/
public boolean hides(MemberDeclaration sub, MemberDeclaration sup) {
Symbol hider = ((DeclarationImpl) sub).sym;
Symbol hidee = ((DeclarationImpl) sup).sym;
// Fields only hide fields; methods only methods; types only types.
// Names must match. Nothing hides itself (just try it).
if (hider == hidee ||
hider.kind != hidee.kind ||
hider.name != hidee.name) {
return false;
}
// Only static methods can hide other methods.
// Methods only hide methods with matching signatures.
if (hider.kind == MTH) {
if ((hider.flags() & Flags.STATIC) == 0 ||
!env.jctypes.isSubSignature(hider.type, hidee.type)) {
return false;
}
}
// Hider must be in a subclass of hidee's class.
// Note that if M1 hides M2, and M2 hides M3, and M3 is accessible
// in M1's class, then M1 and M2 both hide M3.
ClassSymbol hiderClass = hider.owner.enclClass();
ClassSymbol hideeClass = hidee.owner.enclClass();
if (hiderClass == null || hideeClass == null ||
!hiderClass.isSubClass(hideeClass, env.jctypes)) {
return false;
}
// Hidee must be accessible in hider's class.
// The method isInheritedIn is poorly named: it checks only access.
return hidee.isInheritedIn(hiderClass, env.jctypes);
}