2010-12-16 46 views
6

我明白爪哇:與鏡像(在註釋處理)

  • 反射的概念之間的一般區別反射(在運行時),並
  • (在運行時使用Class, Method, Field, Annotation, ...完成)鏡像(在註釋處理期間使用TypeMirror, TypeElement, ...完成)。

但有人可以請深入比較這兩個概念(或指向我的資源,它在哪裏完成)?

例如,該概念提供什麼樣的信息,其他不提供...

謝謝。

回答

3
  • 反射類用於表示在運行的JVM中的對象類別。反射是一個非常古老的概念,從一開始就一直存在於Java中。因此,它在某些領域有點笨拙,已經擴展到適應新的語言結構(特別是泛型)。
  • javax.lang.model中的類用於與Java源代碼一起使用。它們是在Generics已經存在並且可以(並且必須)更廣泛地支持它們的情況下設計的,因爲它們在之前被用於類型擦除發生。
+0

謝謝。但是,正如我所提到的,一般概念是已知的,我希望能夠進行深入的分析。順便說一句,我認爲反映已經擴展到支持泛型的陳述是錯誤的,正如你自己提到的那樣,它們在運行時被刪除。 – 2010-12-16 20:34:45

+0

哦,我明白了,通過說java.lang.reflect是泛型擴展的,你可能指的是'java.lang.reflect.TypeVariable'。嗯,從來沒有使用它,會通知我自己... – 2010-12-16 20:44:21

+2

@ java.is.for.desktop:對象的類型參數被擦除,但字段,方法和類定義中的類型參數不是。 – 2010-12-16 21:08:36

0

我想你會在this paper找到答案。

+0

感謝您的論文,但由於它是面向研究對象的,所以很難閱讀。如果你能從技術角度簡要描述它,那將是非常好的。 – 2011-08-02 01:11:45