Java基础之反射原理与用法详解

  

本文实例讲述了Java基础之反射原理与用法。分享给大家供大家参考,具体如下:

  

1。什么是反射吗?

  

反射其实就是动态的加载类,我们在写JDBC的时候加载驱动<代码> forname (“xxx”)>   

是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

  

2。反射机制能做什么?

  

1。在运行时判断任意一个对象的所属的类。

  

2。在运行时判断构造任意一个类的对象。

  

3。在运行时判断任意一个类所具有的成员变量和方法。

  

4。在运行时调用任意一个对象的方法。

  

3。反射机制相关的API

  

获得完整的包名和类名

  

Student.java         包com.reflect.test;   公开课学生{   私人int id;   私人字符串名称;   公共的学生(){}   公开学生(int id字符串名称){   超级();   这一点。id=id;   this.name=名称;   }   公共int getId () {   返回id;   }   公共空间setId (int id) {   这一点。id=id;   }   公共字符串getName () {   返回名称;   }   公共空间setName(字符串名称){   this.name=名称;   }   @Override   公共字符串toString () {   返回“学生[id=" +身份证+”,name=" +名字+ "]”;   }   }      之前      

Test.java         包com.reflect.test;   公共类测试{   学生stu=new ();   公共静态void main (String [] args) {   测试测试=新测试();   test.getClassName ();   }//获得完整的包名和类名   公共空间getClassName () {   System.out.println (stu.getClass () . getname ());   }   }      之前      

运行结果

  
  

com.reflect.test.Student      

获取类的三种方法

        公共静态void main (String [] args) {   测试测试=新测试();   test.getStudentClass ();   }//获取类对象的三种犯法   公共空间getStudentClass () {//第一种方法,forName   Class<& # 63;比;class1;   尝试{   class1=forname (“com.reflect.test.Student”);   System.out.println (“class1:“+ class1);   }捕捉(ClassNotFoundException e) {   e.printStackTrace ();   }//第二种方法,类   Class<& # 63;比;class2=Student.class;   System.out.println (“class2:“+ class2);//第三种方法,getClass ()   学生stu1=new ();   Class<& # 63;比;类别3=stu1.getClass ();   System.out.println (“class3:”+ class3);   }      之前      

运行结果

  
  com.reflect.test

class1:类。学生
  com.reflect.test class2:类。学生
  类别3:类com.reflect.test.Student

     

更多的java相关内容感兴趣的读者可查看本站专题:《java面向对象程序设计入门与进阶教程》、《java数据结构与算法教程》、《java操作DOM节点技巧总结》,《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》

  

希望本文所述对大家java程序设计有所帮助。

Java基础之反射原理与用法详解