2013-06-11 88 views
0

有一個叫TypeLiteral.什麼是Java中的文字類型?

的ASTNode子類這種類型的代碼的描述說,它看起來像

(Type | void) . class

我不相信我所見過這樣的事。

任何人都可以提供一個TypeLiteral的例子,也許另外它在Java程序中使用嗎?

回答

2

有一個名爲Class的類,它表示一個對象的類。它包含了對該類和該類的對象進行內省的各種有用方法。獲取類對象的一種方法是使用Object方法getClass()。但是如果你想通過它的類的名字來引用Class,你可以使用類文字。

一些例子:

class Foo { 
    void method(Object b) { 
    if(b.getClass() == Foo.class) { 
     Foo f = Foo.class.cast(b); 
    } 
    Foo.class.getResourceAsStream(...); 
    Foo.class.getMethod("method", Object.class); 
    } 
} 
+1

你能解釋一下嗎? '.class'做什麼?另外,爲什麼它被稱爲「TypeLiteral」? 「Type」和「Literal」是什麼? – CodyBugstein