我正在尝试利用groovy比java更具动态的事实。 我想要一个代码块
TypeA type = //do something to build an object
TypeA dbType = TypeA.findBySomethingAndSomething(something, somethingelse)
if(dbType != null)
type.id = dbType.id
type.save()
但这可以用于支持相同findBySomethingAndSomething方法的多个对象。
可以说
def type = //do something to build an object
def dbType = type.findBySomethingAndSomething(type.identifier, type.otheridentifier)
if(dbType != null)
type.id = dbType.id
type.save()
有没有“更好”的方法来实现这一目标? 我正在尝试避免使用大型switch语句或if / else系列对每种类型执行基本相同的操作。
答案 0 :(得分:2)
您始终可以通过instance.getClass()
从实例中获取类对象。因此,以下内容应该有效:
instance.getClass().findBySomethingAndSomething(type.identifier, type.otheridentifier)
只要实例的类支持findBySomethingAndSomething