gpt4 book ai didi

javax.lang.模型 : How do I get the type of a field?

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:21 25 4
gpt4 key购买 nike

java.lang.reflect , 一个会做:

Field someField = ...;
Class<?> fieldType = someField.getType();

但是我该如何处理 javax.lang.model VariableElement (这可能代表也可能不代表一个领域)?相应的返回值将是(我猜)TypeElement .

VariableElement someField = ...;
TypeElement fieldType = someField.???;

所以,在 javax.lang.model , 如何获取字段的类型(或 TypeElement ),由 VariableElement 表示?

顺便说一句,没有一个适合 javax.lang.model 的 Stackoverflow 标签;)

最佳答案

嗯,我不知道,这是做这件事的正确方法。
如果真正了解此 API 的人告诉我,那就太好了。

但是,接缝工作。

public class SomeClass {
private final ProcessingEnvironment pe = /* get it somewhere */;
private final Types typeUtils = pe.getTypeUtils();

public TypeElement getExtracted(VariableElement ve) {
TypeMirror typeMirror = ve.asType();
Element element = typeUtils.asElement(typeMirror);

// instanceof implies null-ckeck
return (element instanceof TypeElement)
? (TypeElement)element : null;
}
}

Types 类似乎必须从当前的 ProcessingEnvironment 中获取,因为它的某些内部结构依赖于它,所以它不是一个普通的实用程序类。

关于javax.lang.模型 : How do I get the type of a field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4482829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com