2010-12-16 116 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