【发布时间】:2012-02-29 08:16:50
【问题描述】:
我有一个类似的域类:
class MyDomainClass{
String name
}
还有一个带有如下签名的接口:
BigDecimal doBigThangs(MyDomainClass startHere)
我希望能够这样称呼它
doBigThangs('stuff')
并让它自动将字符串“stuff”强制转换为适当的 MyDomainClass。这是我尝试过的,但也许我需要使用“asType”之类的东西。
ExpandoMetaClass.enableGlobally()
String.metaClass.toMyDomainClass = {->MyDomainClass.findByNameLike(delegate)}
【问题讨论】:
-
是否可以使用简单的多态性来处理这个问题?
-
我会去尝试最终理解多态性并告诉你:p
-
似乎“多态性”只是意味着“实现一个接口”,这仍然给我留下了一个问题:如何在 String 上实现该接口?
标签: data-binding grails groovy grails-domain-class type-coercion