用java类中的映射获取变量名 - 编程入门网
用java类中的映射获取变量名时间:2011-03-26 BlogJava zhongli在类中定义了一个属性abc,如何获取这个变量的abc的名字串呢?也就是说怎么知道 abc这个变量的名字是abc,这个问题比较的好玩。 这个是偶在一开发中遇到的一个比较有趣的问题,找 了半天的资料加下偶辛勤的思考 ,终于找到的解决方法。用反射~~~ java提供了很强大的反射机制,可以说比动态语言还动态。但是这个东东平时的应用 不是很多的说。 现提供一个可以动态获取对象中的变量的变量名称的bt方法:
fields[i].setAccessible(true);这句主要是因为私有的变量在对象外是无法访问的 ,通过这个设置就可以改变私有变量的访问权,还真的有点恐怖,当偶把这个解决方法告 诉Boss的时候,Boss差点吐血,私有的都能访问了,还有什么安全可言? 不过了,有安全就有特权,所以由于能很好的解决问题还是被采纳了,嘻嘻~~~ Object o = fields[i].get(f);这句的作用就是取得传入对象f中类的属性fields[i] 对应的真实的属性变量,说的有点别扭,比如有一个类A中有一个int abc的属性,并且我 们有两个A类的对象a1,a2,那么当我们用fields[i].get(a1)的时候得到的将是对象a1中 的具体的abc属性,而我们用fields[i].get(a2)的时候得到的将是对象a2中的具体的abc 属性。 最后是用一个main方法测试了一个JLabel对象,打印出了JLabel中声名的所有的变量 名,并输出了其对应的变量的值。结果如下: 传入的对象中包含一个如下的变量:uiClassID = LabelUI 传入的对象中包含一个如下的变量:mnemonic = 0 传入的对象中包含一个如下的变量:mnemonicIndex = -1 传入的对象中包含一个如下的变量:text = 测试 传入的对象中包含一个如下的变量:defaultIcon = null 传入的对象中包含一个如下的变量:disabledIcon = null 传入的对象中包含一个如下的变量:disabledIconSet = false 传入的对象中包含一个如下的变量:verticalAlignment = 0 传入的对象中包含一个如下的变量:horizontalAlignment = 10 传入的对象中包含一个如下的变量:verticalTextPosition = 0 传入的对象中包含一个如下的变量:horizontalTextPosition = 11 传入的对象中包含一个如下的变量:iconTextGap = 4 传入的对象中包含一个如下的变量:labelFor = null 传入的对象中包含一个如下的变量:LABELED_BY_PROPERTY = labeledBy |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |