有沒有什麼辦法可以檢查一個javax.lang.model.type.TypeMirror
是一個原始類型?我試過instanceof PrimitiveType
,但這總是成立,因爲PrimitiveType
擴展了TypeMirror。檢查javax.lang.model.type.TypeMirror是一個基本類型
謝謝你的幫助。
有沒有什麼辦法可以檢查一個javax.lang.model.type.TypeMirror
是一個原始類型?我試過instanceof PrimitiveType
,但這總是成立,因爲PrimitiveType
擴展了TypeMirror。檢查javax.lang.model.type.TypeMirror是一個基本類型
謝謝你的幫助。
每https://docs.oracle.com/javase/7/docs/api/javax/lang/model/type/TypeMirror.html
要基於類的TypeMirror的對象的, 實施操作可以使用visitor或者使用getKind()方法的結果。由於 實現可能選擇讓一個對象實現多個 TypeMirror子接口,因此使用instanceof不一定是用於確定此建模層次結構中對象的有效類的可靠方法。
嘗試調用getKind()
而不是instanceOf
。
謝謝,我沒注意到那部分! – Aurasphere
如果您有TypeMirror
對象,可以使用getKind()
方法獲得此類型的對象(TypeKind
),然後使用isPrimitive()
方法。
if(typeMirror.getKind().isPrimitive()){
//It's a primitive type
}
有2個選項:
要檢查它是否一種原始
typeMirror.getKind().isPrimitive()
,或使用訪問者執行操作,如果它是PrimitiveType
typeMirror.accept(new SimpleTypeVisitor6<P, R>() {
@Override R visitPrimitive(PrimitiveType t, P p) {
//do something with primitive type t
}
}, null);
的實例你有沒有試過'TypeMirror.getKind()'? –