日期:2014-05-17  浏览次数:20729 次

int uid=123 ,怎么得到uid这个变量名,而不是他的值
比如 String name="jhon";我要得到变量名name,不是他的值
Java?

------解决方案--------------------
可以,反射技术。
import java.lang.reflect.Field;

/**
 * @author user
 * 
 */
public class Test {

public static void main(String[] args) {
Ha obj = new Ha();

Field[] fields = obj.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
System.out.println(fields[i].getName());
}
}

}

class Ha{
String name = "haha";

}

------解决方案--------------------
http://www.iteye.com/topic/657837

自己模仿去做吧。
------解决方案--------------------
引用:
Quote: 引用:

可以,反射技术。
import java.lang.reflect.Field;

/**
 * @author user
 * 
 */
public class Test {

public static void main(String[] args) {
Ha obj = new Ha();

Field[] fields = obj.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
System.out.println(fields[i].getName());
}
}

}

class Ha{
String name = "haha";

}
你这是获得对像中的成员变量名,我想获得的是方法中的变量名或传递给某个方法的参数名


说过了,在运行时,局部变量没有名称,它的名称只在编译时存在,因此你无法用任何方式在运行时获得局部变量名称,因为它不存在。局部变量只是一简单的索引方式存放在方法栈局部变量空间中,你可以把它理解为数组的下标。
------解决方案--------------------
楼主都说了是传过去的变量 你再传个变量的名字不就得了
------解决方案--------------------
把变量名称当参数传入方法中。