Java: проверка типа получателя элемента Executable - PullRequest
0 голосов
/ 26 мая 2018

Допустим, у меня есть метод, который принимает ExecutableElement в качестве аргумента.Я знаю, что могу использовать ExecutableElement.getReceiverType, чтобы извлечь его тип.Теперь я хочу проверить, является ли тип получателя этого метода String.т.е. этот метод относится к классу String.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Используйте служебный класс Types и Elements.

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())
0 голосов
/ 26 мая 2018

Вы используете оператор instanceof, чтобы проверить, является ли класс определенного типа:

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