java中怎样获取变量名?(主函数中定义的);

大概就是这个意思:
public class test {
public static void main(String args[])
{
String abc = "234";
func(abc);//输出“abc”;
}

public static void func(Object obj)
{
//......................
}
}

对于局部变量是不可能的,因为变量名不是程序运行的必要部分,变量名在编译的时候就去除了。

对于成员变量,可以参见[1],使用Fields.getName() 获取

在编译Java的时候加上-g选项可以保留变量名,但这只用于调试。关键看你怎么用这个“变量名”了.如果你的情况和[2]一样,不妨编程的时候换个思路。

[1]http://java.sun.com/javase/6/docs/api/java/lang/reflect/Field.html
[2]http://www.velocityreviews.com/forums/t131824-get-variables-name-on-runtime.html

参考资料:http://stackoverflow.com/questions/744226/java-reflection-how-to-get-the-name-of-a-variable

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-12-25
public static void func(Object obj)
{
System.out.println((String)obj);
}
呵呵,不好意思,没看清楚是需要变量名。
成员变量可可以获得,但是 临时变量(方法体内)不能获得到变量名。
第2个回答  2009-12-25
public class test {
变量名就是你自己写的,没法获取,而且获取有啥意义呢
public static void main(String args[])
{
String abc = "234";
func("abc");//输出“abc”;
}

public static void func(Object obj)
{
System.out.println(obj);

}
}
第3个回答  2009-12-25
pujia12345 的方法不可行。

需要使用JAVA的反射机制。
可以去读这篇文章:http://laies.javaeye.com/blog/157076

Java的方法中怎样调用主函数中定义的变量?
public GraduateResearch1_5(){ 原来要放到main函数中去做的 } public static void main(String args[]) { GraduateResearch1_5 gr = new GraduateResearch1_5();} public static void fetchDictionary(String s) { 这里变量A、B、C应该就可以用了 s1[A][B][C] = s.substring(0, i);....

JAVA中其他类如何调用主函数的变量?
java里面没有全局变量的定义,但是你这里的意思好像就是要一个这样的全局变量。你可以定义一个类用于保存你要的变量,然后访问这个类就行。如果要在你下面的这个方法中访问main方法中的变量是做不到的

在JAVA中 定义一个变量在主函数入口内和外有什么区别
在主函数定义一个变量,如果是全局变量,则程序是可以执行的时候,一定会执行读取;而在主函数之外定义,比如说是类中定义,则只有在调用此类时此变量才会被读取;

arg0在Java中表示什么意思?
就是一个变量名。可以自己定义,一般主函数里面传的参数名叫args,取其中第一个就是:args[0],但也不是arg0,具体表示什么意思,从英语意义上来说的话,应该是参数或者变量的第一个。

JAVA中 变量 ,函数的自变量, 函数参数,函数分别是指的什么?
在java里不是叫函数,是叫方法。比如public String getHelloWorld(String str);这就是一个方法。函数的自变量就是函数内部定义的一个变量。也叫局部变量,它只在函数的内部被使用。比如public void getHelloWorld(String str){ String strHelloWorld = str;这里定义的strHelloWorld就是一个自变量 } 上面...

Java 中获取类名的三种方法,你知道几种?
获取类名是Java编程中常见需求,本文介绍Java中获取类名的三种方法,让你更清晰理解它们的区别。1. getName()方法:返回类名在虚拟机中的表现形式,如:com.test.TestClass$TestInnerClass;。这里需要注意的是,这种形式包含了对函数返回值和参数的编码,对于理解类名并不直观。2. getCanonicalName()...

在c语言中的主函数中 定义的变量名是不是不能和已经声明好的函数名相同...
是的啊,不能的,如果你弄相同的话,编译器无法分辨你的到底是变量名还是函数名

在Java中把对象定义在main()函数里面和定义在主函数外面有什么区别?
不管是定义在main方法还是什么方法 都属于局部变量 而定义在方法之外 类之内 的属于全局变量 区别就是作用域不同

函数体内声明的变量和主函数内声明的变量名称可以相同吗
可以一样,没有什么影响,两者是相互独立。在函数内部声明的是局部变量,其作用范围往往限制在这个函数内。

Java中定义和声明的区别
1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。声明是向编译器介绍名字--标识符。它告诉编译器“这个函数或变量在某处可找到,它的模样象什么”。而定义是说:“在这里建立...

相似回答