Java:检查Executable元素的接收者类型

时间:2018-05-26 03:23:00

标签: java string reflection metaprogramming

假设我有一个以ExecutableElement为参数的方法。我知道我可以使用ExecutableElement.getReceiverType来提取它的类型。现在我想检查此方法的接收器类型是否为String。即此方法属于String类。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

使用实用工具类TypesElements

javax.lang.model.util.Types types; // this two util objects are from your context.
javax.lang.model.util.Elements elements;
TypeMirror stringType = elements.getTypeElement(String.class.getCanonicalName()).asType(); // get string type
types.isSameType(executableElement.getReceiverType(), stringType);

或者您可以简单地比较其名称

executableElement.getReceiverType().toString().equals(String.class.getCanonicalName())

答案 1 :(得分:-1)

使用instanceof运算符检查某个类是否属于某种类型:

if (ExecutableElement.getReceiverType() instanceof String) {
     ....
}