黑马程序员技术交流社区

标题: 反射的基石-Class类 [打印本页]

作者: 心在左边跳    时间: 2015-7-10 14:58
标题: 反射的基石-Class类
1.反射的基石-Class类
  1. public class ClassDemo {
  2.     public static void main(String[] args) throws ClassNotFoundException {
  3.         //返回字节码。如果字节码已经被加载,直接返回,如果没加载,用类加载器加载,然后返回
  4.         Class.forName("java.lang.String");
  5.         String str="abc";
  6.         Class cls1=str.getClass();
  7.         Class cls2=String.class;
  8.         Class cls3=Class.forName("java.lang.String");
  9.         //Class对象相同
  10.         System.out.println(cls1==cls2);//true
  11.         System.out.println(cls2==cls3);//true
  12.         System.out.println(cls1.isPrimitive());//false
  13.         //指定的 Class 对象是一个基本类型
  14.         System.out.println(int.class.isPrimitive());//true
  15.         //不同的Class对象,不同字节空间
  16.         System.out.println(int.class==Integer.class);//false
  17.         //Integer.TYPE表示它所包装的基本类型
  18.         System.out.println(int.class==Integer.TYPE);//true
  19.         //int[]是数组类型
  20.         System.out.println(int[].class.isPrimitive());//false
  21.         System.out.println(int[].class.isArray());//true
  22.     }
  23. }
复制代码
2.理解反射的概念

反射就是把类类各种成分映射成相应的JAVA类,例如,一个JAVA类中用一个Class类的对象表示,一个类的组成部分:成员变量,方法,构造方法,包等信息也用JAVA表示。表示JAVA类的Class类显然提供了一系列的方法,获取其中的变量,方法,构造方法,修饰符,包等信息。这些信息就是用响应类的实例对象表示。他们是Field,Method,Contructor,Package等
一个类中的,每个成员都可以用相应的反射API类的一个实例对象表示。调用Class类对象可以得到这些成员的实例对象。





作者: 南四段    时间: 2015-7-10 19:24
学习了  谢谢
作者: 为明天而奋斗    时间: 2015-7-11 20:40
这个得认真看哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2