来自:http://www.verydemo.com/demo_c89_i76154.html
java 反射
机制(六)
总结
Java 反射 机制是Java 语言的一个重要特性。考虑实现一个newInstance(String
className)方法,它的作用是根据参数className 指定的类名,通过该类的不带参数的
构造方法创建这个类的对象,并将其返回。如果不运用Java 反射 机制,必须在
newInstance()方法中罗列参数className所有可能的取值,然后创建相应的对象:
个HelloService4类,或者增加了一个HelloService1001类,都需要修改以上newInstance()
方法。
如果运用反射 机制,就可以简化程序代码,并且提高软件系统的可维护性和可扩
展性:
Java 反射 机制在服务器程序和中间件程序中得到了广泛运用。在服务器端,往往
需要根据客户的请求,动态调用某一个对象的特定方法。此外,有一种ORM
(Object-Relation Mapping,对象-关系映射)中间件能够把任意一个JavaBean 持久化
到关系数据库中。在ORM 中间件的实现中,运用Java 反射 机制来读取任意一个
JavaBean的所有属性,或者给这些属性赋值。在作者的另一本书《精通Hibernate:Java
对象持久化技术详解》中阐述了Java 反射 机制在Hibernate(一种ORM中间件)的实
现中的运用。
在JDK类库中,主要由以下类来实现Ja…………………………………………………………………………
Java 反射 机制是Java 语言的一个重要特性。考虑实现一个newInstance(String
className)方法,它的作用是根据参数className 指定的类名,通过该类的不带参数的
构造方法创建这个类的对象,并将其返回。如果不运用Java 反射 机制,必须在
newInstance()方法中罗列参数className所有可能的取值,然后创建相应的对象:
public Object newInstance(String className) throws Exception{
if(className.equals("HelloService1"))
return new HelloService1();
if(className.equals("HelloService2"))
return new HelloService2();
if(className.equals("HelloService3"))
return new HelloService3();
if(className.equals("HelloService4"))
return new HelloService4();
...
if(className.equals("HelloService1000"))
return new HelloService1000();
}
以上程序代码很冗长,而且可维护性差。如果在以后软件的升级版本中去除了一
个HelloService4类,或者增加了一个HelloService1001类,都需要修改以上newInstance()
方法。
如果运用反射 机制,就可以简化程序代码,并且提高软件系统的可维护性和可扩
展性:
public Object newInstance(String className) throws Exception{
Class classType=Class.forName(className);
return classType.newInstance();
}
Java 反射 机制在服务器程序和中间件程序中得到了广泛运用。在服务器端,往往
需要根据客户的请求,动态调用某一个对象的特定方法。此外,有一种ORM
(Object-Relation Mapping,对象-关系映射)中间件能够把任意一个JavaBean 持久化
到关系数据库中。在ORM 中间件的实现中,运用Java 反射 机制来读取任意一个
JavaBean的所有属性,或者给这些属性赋值。在作者的另一本书《精通Hibernate:Java
对象持久化技术详解》中阐述了Java 反射 机制在Hibernate(一种ORM中间件)的实
现中的运用。
在JDK类库中,主要由以下类来实现Ja…………………………………………………………………………