我试图利用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系列,每种类型的功能基本上相同。
最佳答案
您始终可以通过instance.getClass()
从实例获取类对象。因此,以下应工作:
instance.getClass().findBySomethingAndSomething(type.identifier, type.otheridentifier)
只要实例的类支持
findBySomethingAndSomething