是否可以在 Java 或 Kotlin 中以编程方式获取局部变量名称?
例如,这段代码
public void printOneTwo() {
int one = 1;
int two = 2;
printLocalVariables(one, two);
}
private void printLocalVariables(Objects... variables) {
//code
}
//result: "one, two"
Run Code Online (Sandbox Code Playgroud)
我需要将变量转换one为字符串"one"
理论上是有可能的。
您可以使用像 ASM 这样的字节码解析器从声明类的类文件中提取方法的局部变量表。该表包含所有局部变量的名称以及它们的有效性的偏移量,以识别声明顺序。
但请注意,此属性是可选的。编译器可以省略添加此调试信息。
| 归档时间: |
|
| 查看次数: |
5215 次 |
| 最近记录: |