有什么方法可以检查javax.lang.model.type.TypeMirror
是原始类型吗?我已经尝试了instanceof PrimitiveType
,但由于PrimitiveType
扩展了TypeMirror,因此总是产生真的。
感谢您的帮助。
答案 0 :(得分:4)
如果您有TypeMirror
个对象,则可以使用TypeKind
方法获取此类型(getKind()
),然后使用isPrimitive()
方法。
if(typeMirror.getKind().isPrimitive()){
//It's a primitive type
}
答案 1 :(得分:1)
每https://docs.oracle.com/javase/7/docs/api/javax/lang/model/type/TypeMirror.html
基于TypeMirror对象的类实现操作, 要么使用访问者,要么使用getKind()方法的结果。运用 instanceof不一定是确定的可靠成语 此建模层次结构中的对象的有效类,因为 实现可以选择让单个对象实现多个 TypeMirror子接口。
尝试拨打getKind()
而不是instanceOf
。
答案 2 :(得分:1)
有两个选项:
检查它是否是原始的
typeMirror.getKind().isPrimitive()
或使用访问者执行操作(如果它是PrimitiveType
的实例)typeMirror.accept(new SimpleTypeVisitor6<P, R>() {
@Override R visitPrimitive(PrimitiveType t, P p) {
//do something with primitive type t
}
}, null);