|
翻看了几个Java的反射代码好像需要知道名称才能取得属性,那我就很困惑了,能不能得到引用取得名称呢?
想到Java虚拟机最后会把变量当作reference指向同一块内存,所以应该可以有方法实现遍历或者逆推得到原来的变量名。
请大家积极发言。。。
[该贴被chabulier于2008-09-22 18:30修改过]
|
翻看了几个Java的反射代码好像需要知道名称才能取得属性,那我就很困惑了,能不能得到引用取得名称呢?
想到Java虚拟机最后会把变量当作reference指向同一块内存,所以应该可以有方法实现遍历或者逆推得到原来的变量名。
请大家积极发言。。。
[该贴被chabulier于2008-09-22 18:30修改过]
方法参数inStr,在调用他的地方传入的是oriName,当然我们可以打印inStr来显示oriName的值,但是有没有什么方法可以打印出来调用当前方法的原始变量名oriName?
因为方法调用可能是嵌套了很多层,感觉这个不是很容易做到。
说白了就是当获得了一个对象以后,想知道在特定方法中该对象引用的名称。
我这个最初的想法来自于一个共通的方法被n个class调用初始化窗体,为了方便逆推当前控件在当前窗体的名称而有了这个想法。
试想一下如果我能够指出当前是什么变量(控件)添加到了窗体中,是不是对后期维护很有帮助呢?
当然了我们可以使用命名规范,或者反射直接提取出当前变量(控件)的内容加以确认。 但是如果可以进一步详细到代码级别不是更好吗?
记得以前有个Windows程序可以显示当前选中的控件的相关信息,不知道是不是一样的原理。
如果象freebox所说,变量名由编译器给出,应该也可以有方法track到变量名称才对。
是你要将窗体控件放入窗体之中,你要了解是谁放的,还是对窗体的上的控件进行管理??
你说的那个windows程序只需要枚举窗体控件即可,显示内容由控件属性决定。
OK,忘记那个Windows程序好了。
后面的还是有点不理解,你要使用窗体里面的控件必须直到名字(活着特征),你可以便利窗体,根据你需要的名字(或者特征)去找。至于叫什么变量名没有什么必要知道。