【问题标题】:How can get the variable name from a Java interface if I Know the value? [closed]如果我知道值,如何从 Java 接口获取变量名? [关闭]
【发布时间】:2016-06-03 18:49:32
【问题描述】:

我有一个这样的 Java 接口:

String User_Name= "username";
String User_Password="password";

在另一个类中,当我知道值时,我想获取变量名称。例如,我知道“用户名”,我想找出这个值存储在哪个变量中。我期待得到 User_Name。 这可以通过反射实现吗?

【问题讨论】:

  • 您到底为什么需要这样做?你有它的用例吗?
  • 我将 JBehave 与 Selenium 一起使用。因此,在用户写入的故事中,会给出如下内容:当输入“用户名”作为“管理员”时。 “用户名”是 webElement 的名称。我创建了一个接口,并将元素的名称存储在 User_Name 中,以便更具可读性并位于中心位置(对象存储库)。然而故事不能实现接口。所以我总是在步骤定义类文本中解析,而不是变量。

标签: java selenium reflection interface


【解决方案1】:

您可以使用反射来遍历所有字段并检查值。这应该作为一个基本示例:

for (Field field : obj.getClass().getDeclaredFields()) {
    if(field.get(obj) == desired_value)
           System.out.println("The matching field is " + field.getName());
    System.out.println(field.getName()
             + " - " + field.getType()
             + " - " + field.get(obj));

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    相关资源
    最近更新 更多