【发布时间】:2011-08-24 15:35:33
【问题描述】:
有没有一种方法可以使用一对“通用”getter/setter 方法创建一个 Java 类,例如
public Object get(String name);
public void set(String name, Object object);
并让 Groovy 翻译语句,例如
myObject.foo = 'bar'
到
myObject.set("foo", "bar")?
(myObject 是具有 get(String) 和 set(String, Object) 方法的 Java 类的实例)
【问题讨论】:
-
只是好奇,你为什么要这样做?看起来你只是让事情变得更复杂,因为这本质上是 groovy bean 属性访问器已经提供的。
-
“为什么”部分有点棘手。Java 是我可以编写类的语言,但我的客户在他们的 Groovy 程序中使用这些类。我遇到了这种情况,我想公开一个 Java 类,其属性在编译时未知并在运行时更改。一种粗略的方法是让我的对象实现 Map 并要求用户执行 obj['foo']=bar,但我认为可能有更好的方法.. 不知道这些“bean 属性访问器”.. 将尝试它们正如其中一个答案中所建议的那样,并取回 thx ..