Java反射机制

来源:互联网 发布:python消费者行为分析 编辑:程序博客网 时间:2024/06/06 17:00

反射是Java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。

反射机制获取类有三种方法:

//第一种方式:  Class c1 = Class.forName("my.unittest.com.Book");  //第二种方式:  //java中每个类型都有class 属性.  Class c2 = Book.class;     //第三种方式:  //java语言中任何一个java对象都有getClass 方法  Book b = new Book();  Class c3 = b.getClass(); //c3是运行时类 (b的运行时类是Book)


反射的作用就是在运行时再去生成对象,这个功能成就了很多框架,比如Spring,把Java Bean的配置文件写在XML里,运行时才生成对象。这样使得代码直接有原来的直接依赖,变成了读配置文件,生成对象的方式,降低了代码耦合度。

package my.unittest.com;import java.lang.reflect.Field;class Book{private String bookname;public Book(){bookname = "No Name";}public Book(String s){bookname = s;}public void printBookName(){System.out.println("The book name is " + bookname + ".");}}public class Reflection {public static void main(String[] args) throws Exception {// TODO Auto-generated method stub    Class c = Class.forName("my.unittest.com.Book");      Field idF = c.getDeclaredField("bookname");    Object o = c.newInstance();     idF.setAccessible(true);     idF.set(o, "Thinking in Java");    ((Book)o).printBookName();}}
0 0
原创粉丝点击