我想对变量列表进行排序,从最大到最小,然后打印出变量的名称。我已经尝试过Arrays,但是当打出数组时,会打印出变量的值,而不是名称。
答案 0 :(得分:6)
打印出变量名称介于极其棘手的问题之间(按照.class
文件的搜索顺序和希望最好的文件)和downright impossible。如果我是你,我会使用Map
,你可以在其中将变量值映射到代码中的“名称”,然后你可以对键进行排序并按顺序打印值。
在我链接的问题的答案中概述了访问变量名称的问题,但基本问题是:如果我有一个没有为其定义名称的对象怎么办?如果单个对象有多个名称怎么办?
答案 1 :(得分:0)
据我所知,您无法在java中打印堆栈变量的名称,因为该数据在运行时不存在。 您可以将变量包装在类中并覆盖其toString()方法。 例如,而不是
int x = 3;
使用: public class Wrapper { 私有最终int值; private final String name;
public Wrapper(int value, String name) {
this.value = value;
this.name = name;
}
public String getName() {
return name;
}
public int getValue() {
return value;
}
}
Wrapper x = new Wrapper(3, "x");