如何将String类型字段添加到类(即该类的所有实例),比如grails将id和version字段添加到所有域类?如果可能,如何将字段类型指定为String / Long等
编辑:
添加的字段不会在DB中更新。如何使它们持久?
答案 0 :(得分:2)
关于POGO,您可以使用ExpandoMetaClass添加/覆盖属性/字段/构造函数。
class Foo{
String bar
}
//Add a field to Foo at runtime
//Type is set to String in this case
Foo.metaClass.baz = "Hello World"
//Add a method to Foo at runtime
Foo.metaClass.doSomething = {String str -> str.reverse()}
assert new Foo().baz == "Hello World"
assert new Foo().doSomething("Hello") == "olleH"
答案 1 :(得分:1)
对于您的用例,您可以使用普通继承:
abstract class Base {
// common fields
// constraints for those fields
// etc.
}
class MyDomain extends Base {
}