A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如何利用反射实现类的动态加载?你们经常用反射技术吗?

2 个回复

倒序浏览
Java中的反射机制是很强大的,它可以:
1.在运行中分析类的能力
2.在运行中查看对象
3.实现数组的操作代码
4.利用Method对象,这个对象类似C++中的指针。
这项功能机制被大量应用于JavaBeans中(JavaBeans是java组件的体系结构)

然而使用反射机制的主要对象是工具构造者,也就是设计开发工具的人群,而不是应用程序员。
应用程序员在设计应用程序时利用反射机制的比较少,构造工具的程序员才会很频繁使用。
当然,这是Java里一项关键的技术,掌握了只有好处没有坏处的。
回复 使用道具 举报
不多说,先上代码
  1. import java.io.FileInputStream;
  2. import java.lang.reflect.Constructor;
  3. import java.util.Collection;
  4. import java.util.Properties;

  5. public class ReflectTest2 {
  6.         public static void main(String[] args) throws Exception {

  7. FileInputStream fis=new FileInputStream("config.properties");
  8.                
  9.                 Properties ppt=new Properties();
  10.                 ppt.load(fis);
  11.                 String className=ppt.getProperty("className");
  12.                
  13.                 Constructor con=Class.forName(className).getConstructor();
  14. Collection setorlist=(Collection) con.newInstance();
  15.                
  16.                 setorlist.add(1);
  17.                 setorlist.add(2);
  18.                 setorlist.add(1);
  19.                
  20.                 System.out.println(setorlist.size());
  21.         }
  22. }
复制代码
在config.properties中更改成不同的集合类就会得到不同的结果
如className=java.util.ArrayList,结果就是3
className=java.util.HashSet,结果就是2,
这就是实现类的动态加载。

我用的不多(基本写些web小项目不用的),但是这是框架的底层实现基础。现在不写框架,肯定是用不上的,但是等学深入了。自己写框架肯定要用的,而且听说反射在安卓中用的也很多,建议好好学下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马