MyException - 我的异常网
当前位置:我的异常网» 编程 » java反照机制应用场景

java反照机制应用场景

www.MyException.Cn  网友分享于:2013-11-01  浏览:9次
java反射机制应用场景
反射机制实现:
1)导出文件(1-4)
2)结果集在页面的显示(在运行时构造任意一个类的对象):显示哪些列, 操作按钮权限的显示(在类中定义一个显示权限的属性真或假,在得到的结果集后调用反射机制和权限控制-得到真或假,在页面中进行判断)



1、在运行时判断任意一个对象所属的类。
Class cls = Class.forName("com.jdk");
返回true
System.out.print(cls.isInstance(new jdk()));

2、在运行时构造任意一个类的对象。
Class cls = Class.forName("com.jdk");
jdk jdkobj = cls.newInstance();

3、在运行时判断任意一个类所具有的成员变量和方法。
Class cls = Class.forName("com.jdk");
Methods methods[]= cls.getDecliedMethod();
Fields  fields[] = cls.getDeclieredFields();

4、在运行时调用任意一个对象的方法
Class cls = Class.forName("com.jdk");
Methods methods[]= cls.getDecliedMethod();
jdk jdkobj = new jdk();
String returnvalue = methods.invoke(jdkobj,null)

其中第四种方法最长使用:
主要有:
a.配置文件创建form对象。并初始化。
    1、使用配置文件产生类的实例。通过配置文件中提供的名称生成类的实例。
    2、使用类的实例,根据request中的参数生成一个properties文件,之后使用beanUtils.populte(form,pro);
    对form的属性进行复制,其中就是使用reflect方法。
b.当你不知道要创建什么类型的对象时,使用在运行时提供类的完整路径的方式来生成类的实例时,
    例如:
    在struts中对messageResources引用的生成中,使用到工厂方法的模式,对于他所要使用的工厂,他采用的是factoryClass参数来生成工厂,之后使用这个工厂的实例来生成messageResources对象。
    这其中就使用到了使用reflect产生类的实例。

c.当对象的方法只有在运行时才知道那些方法被调用,那些方法不用调用时,且方法遵循一定的规律生成,而且方法很对,比如100个。

例如:
使用日历生成客户经理的月报时,因为一个月是1到31天(最长),我们通过在数据库中配置客户经理日历的表,其中有
customerid,customercode,no1,no2,no3,no4,no5------,no31,remark,tag,status   .......
生成的bean和上面的表的字段相对性,如customerbean
我们通过jdbc从数据库查询得到客户经理每个月的数据,通过画表格的方式生成客户经理月报,输出每天的记录时,调用bean的1-31天的方法,如果不采用reflect那么将会是恼人的代码,采用reflect则会节省很多的时间和空间,

d.最有用的也是最经常使用的,通过回调的方式从resultset中查询数据,查询字段和类型的内容是动态的,查询的sql也是动态的即结果集是动态的。这时我们可以很好的使用反射机制。通过指定的字段和类型,使用反射的方法在结果集中查找,并封装成map传回。

文章评论

如何成为一名黑客
如何成为一名黑客
程序员应该关注的一些事儿
程序员应该关注的一些事儿
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
每天工作4小时的程序员
每天工作4小时的程序员
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
鲜为人知的编程真相
鲜为人知的编程真相
那些争议最大的编程观点
那些争议最大的编程观点
程序员的鄙视链
程序员的鄙视链
我是如何打败拖延症的
我是如何打败拖延症的
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
漫画:程序员的工作
漫画:程序员的工作
代码女神横空出世
代码女神横空出世
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
 程序员的样子
程序员的样子
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
旅行,写作,编程
旅行,写作,编程
程序员必看的十大电影
程序员必看的十大电影
总结2014中国互联网十大段子
总结2014中国互联网十大段子
中美印日四国程序员比较
中美印日四国程序员比较
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
老程序员的下场
老程序员的下场
程序员和编码员之间的区别
程序员和编码员之间的区别
编程语言是女人
编程语言是女人
10个调试和排错的小建议
10个调试和排错的小建议
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
Java程序员必看电影
Java程序员必看电影
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有