我是指变量名。谢谢

解决方案 »

  1.   

    获取变量名?
    楼主举得出例子吗,感觉这样的需求根本不可能啊,空洞
    不会是获取一个实例的类名吧
    System.out.println(new String().getClass());
      

  2.   

    Class.forName()只能获取对象的类型名
      

  3.   

    我觉得问题有理论价值,但Java中好象没有这样的机制.复杂性在于,任何一个实例可能对应0个(匿名对象)和多个变量,而从实例去获得这些变量名好象是违背最基本的安全要求.
      

  4.   

    肯定是可以做到的,否则java怎么反编译,成员变量的名字好得到,关键是方法里定义的临时变量怎么办。
      

  5.   

    无稽之谈!局部变量是存放在内存栈中,当他的生命周期结束之后,变量也就不再内存的栈中了,你从那里去获取?不过你可以在对象中增加一个field,用于保存变量的名称,只要每次把改对象的实例赋值给一个变量,就把改变量的名称setter到这个field中,不过这样做有什么意义?关于你要实现的东东,是不是指在SWING中,点击一个组件得到该组件的名称?可是设置一个command属性实现。
      

  6.   

    楼上啊,你没看清我的问题,我已经说了,是传递一个对象的实例,那么它的生命周期就没结束,保存在field倒是很容易,你猜的也不错,原本就是想取出一个组件的名字来,但我现在不想局限于swing了。
      

  7.   

    应该不能吧?试想一下如果你有一个类Test
    Test t = new Test();Test a;
    Test b;
    Test c;a = b = c = t;
    如果能返回变量明,你说是返回哪个呢?
      

  8.   

    你的意思就是:
    传 a 返回 a
    传 b 返回 b 传哪个返回哪个呀。那么你都知道他的变量名了还用得着返回吗?
      

  9.   

    如果是EventObject就可以用getSource(),如果是别的,我觉得搞不了
      

  10.   

    你就是getSource了,又怎能得到它的变量名呢
      

  11.   

    编译之后就是字节码,不存在变量名了。Java 不是脚本语言。
      

  12.   

    我是想用它来自动生成一些代码,当然需要它的变量名了,java对此一点办法没有吗?好些在技术上也不难吧,成员变量都可以知道,普通变量就不行了?期待一个确定的答案。
      

  13.   

    不是很理解你的问题,
    如果你是说如果点击窗体,然后返回这个窗体的属性(其中包括,object,variables,arguments),
    如果需要显示object,可以写个方法来返回,比如
    public  要点击的窗体  点击窗体(要点击窗体 窗体1){
    要点击窗体 窗体2=窗体1;
    return 窗体2;
    }
    你可以加载这个方法,当点击窗体1的时候,(在event里加载).
    如果窗体多的话,可以用array来写这个方法,
    当然对于variables...可以用类似的方法来返回就行了.
    不知道是不是楼主说的意思.  :)