1

我试图利用 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 系列对每种类型做本质上相同的事情。

4

1 回答 1

2

您始终可以通过instance.getClass(). 因此,以下应该起作用:

instance.getClass().findBySomethingAndSomething(type.identifier, type.otheridentifier)

只要实例的类支持findBySomethingAndSomething

于 2010-02-01T21:22:18.683 回答