我想通过标记和其他信息搜索declared methods
。
例如,我想搜索方法public final void ae(StringTokenizer);
。
以下是一个示例方法,我想如何搜索它:
private CtMethod findMethod(CtClass clazz, int access, String returns, String[] parameters) throws NotFoundException {
/*
returns = null = void, other String for returned class name
parameters = easy names of parameters
*/
CtMethod found = null;
for(CtMethod method : clazz.getDeclaredMethods()) {
// Check here all flags and informations - If found, set the `found` variable and return
}
return found;
}
以下是一个示例电话:
CtMethod inputMethod = this.findMethod(theClass, AccessFlag.FINAL, null, new String[] { "StringTokenizer" });
我如何检查显式标志,样本AccessFlag.FINAL | AccessFlag.PUBLIC
?
答案 0 :(得分:1)
您可以通过调用CtMethod::getModifiers
来获取修饰符。然后,您可以检查修改器是否已设置:
if (ctMethod.getModifiers() & (AccessFlag.FINAL | AccessFlag.PUBLIC) != 0) {
found = ctMethod;
break;
}