class="article_content clearfix">
class="markdown_views prism-github-gist">
class="tags" href="/tags/FanShe.html" title=反射>反射(一)
什么是class="tags" href="/tags/FanShe.html" title=反射>反射?
类加载之后,堆内存中会产生一个Class类型的对象(一个类只有一个Class类型对象,这个对象是提供给外界访问对应类的接口),该对象包含了完整的类结构信息,就像一面镜子,通过这个对象可以看到类的结构。
class="tags" href="/tags/FanShe.html" title=反射>反射能做什么?(皆指的是运行期间)
-
判断任意对象所属的类
-
构造任意一个类的对象
-
调用任意一个类的方法和属性
-
获取类的注解
-
生成动态代理
…
如何获取Class类实例?(以Person类为例)
-
已知具体的类,通过class属性获取
class="prism language-class="tags" href="/tags/JAVA.html" title=java>java">Class Person
-
已知某个类的对象,通过getClass()方法获取
class="prism language-class="tags" href="/tags/JAVA.html" title=java>java">Class person
-
已知类的全限定名,通过Class类的静态方法forName()获取
class="prism language-class="tags" href="/tags/JAVA.html" title=java>java">Class Class
-
基本内置类型的包装类可以用Type属性获取
class="prism language-class="tags" href="/tags/JAVA.html" title=java>java">Class Integer Type
如有错误或不足之处,非常欢迎指正、讨论