0

假设我有这样的课程:

class Termin {
    String someName
}

然后是一个对象

object a = new Termin();

和一个变量

String something = a.someName;

如果我只有变量 something,如何从类中获取属性 someName 的名称?

4

3 回答 3

3

我认为最简单的方法应该是:

a."${something}"
于 2013-05-28T12:49:05.913 回答
1

Termin除非您按照@Igor Artamonov 的回答检查对象中的每个属性值,否则您不能这样做。您分配给的值String something不会产生类似于对该属性所属的原始对象的引用。

您可以尝试MetaProperty明确地使用,但它会变得笨拙:

class Termin {
  String name
}

t = new Termin(name: "john doe")

def something = t.metaClass.properties.find { it.name == "name" }

assert something.getProperty(t) == "john doe"
assert something.field.name == "name"
于 2013-05-28T13:17:40.867 回答
1

尝试:

String something = ...
String propertyName = a.properties.entrySet().find { 
   return it.value == something
}?.key
于 2013-05-28T12:40:02.700 回答