如何获取变量名称? - Java

10

能否获取变量名?

例如:

String nameOfCar = "audi";

现在打印结果:
System.out.println(nameOfCar.getVname???or something similar);

屏幕:

nameOfCar

1
你需要它做什么? - Grim
为什么不直接使用“nameOfCar”? - Henry
2
在Java中,变量名仅在编译时可用。当您运行程序时,它们不可用。 - Code-Apprentice
当然可以。反射机制就是为此而存在。(只是速度比较慢。) - user837703
@TheLostMind 哦,抱歉,那就不可能了。我以为 OP 是在谈论一个类的字段。 - user837703
所以它不像Python,变量.__name__。然而,如果您使用映射结构并将其静态存储在内部,则可以显示变量名称。 - Ahmet
2个回答

12

你可以通过反射获取所有字段名称

Class yourClass = YourClass.class
Field[] fields = yourClass.getFields();
for(Field f: fields){
    f.getName();
}

或者,如果您想要映射,则选择地图

Map<String, String> propertyToValueMap

如果你正在尝试阅读方法中的局部变量名称,那么获取它并不简单,同时这也是你在做一些错误的信号。


请也谈谈关于方法变量的事情。 - Grim
为了访问私有字段,请使用“yourClass.getDeclaredFields()”。 - adbar

0

你可以通过反射来实现

Class  myClass = MyClass.class
Field field = myClass.getField("nameOfCar ");
System.out.println(field .getName());

如果不使用名称获取所有字段,可以这样做:

Field[] myFields = myClass .getFields();

19
通过字段名查找字段名称以获取字段名? - jmj
你将获得Field Object。根据OP的说法,他可以使用字段名nameOfCar.getVname - Aniket Thakur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接