2016-08-31 56 views

回答

1

https://docs.oracle.com/javase/7/docs/api/javax/lang/model/type/TypeMirror.html

要基於類的TypeMirror的對象的, 實施操作可以使用visitor或者使用getKind()方法的結果。由於 實現可能選擇讓一個對象實現多個 TypeMirror子接口,因此使用instanceof不一定是用於確定此建模層次結構中對象的有效類的可靠方法。

嘗試調用getKind()而不是instanceOf

+0

謝謝,我沒注意到那部分! – Aurasphere

3

如果您有TypeMirror對象,可以使用getKind()方法獲得此類型的對象(TypeKind),然後使用isPrimitive()方法。

if(typeMirror.getKind().isPrimitive()){ 
    //It's a primitive type 
} 
1

有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);