java - 在 Java 中获取变量的名称

标签 java introspection

是否可以在运行时获取 Java 中变量的名称?

可能的用例:在断言中。给定一个断言

assert percval >= 0 && percval <= 100 : "percval out of range: " + percval;

根据您的 IDE,如果您重构代码、重命名变量,它可能不会自动更改字符串中的出现次数。可能的结果:

assert percentage >= 0 && percentage <= 100 : "percval out of range: " + percentage;

如果有这样的东西就好了:

assert percval >= 0 && percval <= 100 : nameOf(percval) + " out of range: " + percval;

可能吗?

最佳答案

我不确定在 java 8 之前是否可行,但是对于 java 8,您可以按照 following link 进行操作并实现你想做的事。

总结如下;

Provide a mechanism to easily and reliably retrieve the parameter names of methods and constructors at runtime via core reflection.

关于java - 在 Java 中获取变量的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42807548/

相关文章:

java - Android - 延迟加载图像到 ListView 的问题

java - 如何在从 JComboBox 创建的按钮上放置标签?

java - 从 Tree 到 TreeViewer 控件

python:判断一个类是否嵌套

python - 内省(introspection)调用函数的pytest fixture

python - 如何在没有 dunder setattr 或 pdb 的情况下观察 python 中的变量变化

.NET 内省(introspection) VS 反射

java - 准备好的语句返回错误值

java - 如果我将它配置为在缺少 web.xml 时不失败,为什么 maven-war-plugin 会因 web.xml 丢失而失败?

objective-c - 内省(introspection)当前 block 上下文,就像方法内部的 _cmd