0

我想对我的变量列表进行排序,从大到小,然后打印出变量的名称。我已经尝试过数组,但是在打印出数组时,它会打印出变量的值,而不是名称。

4

2 回答 2

6

打印出变量介于极其棘手(按照搜索.class文件并希望获得最佳结果的顺序)和完全不可能之间的某个位置。如果我是你,我会改用 a Map,你可以在代码中将变量值映射到它们的“名称”,然后你可以对键进行排序并按顺序打印值。


我链接的问题的答案很好地概述了访问变量名称的问题,但基本问题是:如果我有一个没有为其定义名称的对象怎么办?如果一个对象有多个名称怎么办?

于 2013-09-24T15:25:33.290 回答
0

据我所知,您无法在 java 中打印堆栈变量的名称,因为该数据在运行时不存在。您可以将变量包装在一个类中并覆盖其 toString() 方法。例如,而不是

int x = 3;

使用: public class Wrapper { private final int value; 私有最终字符串名称;

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");
于 2013-09-24T15:25:17.473 回答