我们需要对象直接new就行,那么为什么要有java反射机制呢?
java的反射机制就是增加程序的灵活性,避免将程序写死到代码里,
例如: 实例化一个 person()对象,不使用反射,new person(); 如果想变成实例化其他类,那么必须修改源代码,并重新编译。(这是不是很烦,尤其是项目上线后更烦)
使用反射: class.forName("person").newInstance();我们把一些后期会频繁改动的类用反射来加载,因为反射加载类只需要类的描述信息,而且这个类描述可以写到配置文件中,如 **.xml,用这个xml来管理, 这样如果想实例化其他类,只要修改配置文件的"类描述"就可以了,不需要重新修改代码并编译。有没有发现这也很好达到来解耦的效果。
所以说利用反射机制,主要能增加程序的灵活性。如SpringMVC,struts中,请求的派发控制。当请求来到时,SpringMVC通过查询配置文件,找到该请求对应的action,然后通过反射实例化action,并调用响应method。
如果不想用反射也是可以的,不过你就只能把这些类的调用写死到代码里了,这肯定是个灾难,一来管理麻烦,偶和太高,二来代码量会非常大,三来代码里会频繁的出现判断的语句..........
而且反射机制可以动态的去调用一些 protected 甚至是private 的方法或类,这样可以很大程度上满足我们的一些比较特殊需求。例子见:
http://blog.csdn.net/wwww1988600/article/details/22884371(很简短的一个demo)