反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法。    

                                                                                                                                                                  ——百度百科

1.根据对象找到类

 1 import java.util.Date;
 2 
 3 public class TextReflection
 4 {
 5     public static void main(String[] args) throws Exception
 6     {    
 7         Date date = new Date();
 8         Class<?> cls = date.getClass();//通过Java反射机制得到类的包名
 9         System.out.println(cls);
10     }
11 }

getClass()方法是由Object类所定义的:public final Class<?>getClass(),此方法返回的对象类型为Class,而Class是反射操作的源头。

2.实例化一个对象

 1 class Book
 2 {
 3     private String title;
 4     private double price;
 5     public void setPrice(double price)
 6     {
 7         this.price = price;
 8     }
 9     public void setTitle(String title)
10     {
11         this.title = title;
12     }
13     @Override
14     public String toString()
15     {
16         return "图书名称:"+this.title+",图书价格:"+this.price;
17     }
18 }
19 
20 public class TextReflection
21 {
22     public static void main(String args[]) throws Exception
23     {    
24         Class<?>cls = Class.forName("Book");
25         Book book = (Book)cls.newInstance();//实例化一个对象
26         book.setTitle("基督山伯爵");
27         book.setPrice(34.5);
28         System.out.println(book);
29     }
30 }

实例化一个对象现在有两个形式,一种是通过new关键字,另一种是通过反射机制完成。

 

先不写了,不太能看懂这反射机制到底是什么意思,让我再好好研究研究再写吧。

 

***参考文献:《Java从入门到精通》第二版、《Java语言程序设计》

posted @ 2017-04-23 20:50  王醒燕  阅读(326)  评论(0编辑  收藏  举报