有没有一种方法我可以创建一个Java类,有一对“一般”的getter/setter方法,如动态字段的Java类
public Object get(String name);
public void set(String name, Object object);
,使Groovy的翻译语句,如
myObject.foo = 'bar'
到
myObject.set("foo", "bar")?
(myObject
是具有的Java类的实例种set(String, Object)
方法)
只是好奇,你为什么要这样做?看起来你只是让事情变得更加复杂,因为这基本上是groovy bean属性访问器已经提供的。 –
“为什么”部分有点棘手.. Java是我可以编写类的语言,但我的客户在他们的Groovy程序中使用这些类。我遇到了这种情况,我想公开一个Java类,它的属性在编译时不知道,并在运行时更改。一个粗糙的方法是让我的对象实现Map并要求用户执行obj ['foo'] = bar,但我认为可能有更好的方法..不知道这些“bean属性访问器”..会尝试它们如其中一个答案建议,并得到thx .. – Pradyumna