假设我有一个班级clubMember
和一个班级user
。只有俱乐部成员可以是用户,用户拥有其他俱乐部成员变量之外的登录数据,俱乐部成员的特征影响他们拥有的用户的权利,因此user
延伸clubMember
。
现在假设一个俱乐部成员想要使用我正在编程的grails servlet。创建一个新的user
实例将导致双重输入,此外我将丢失前一个成员与其他类之间存在的所有链接。那么将clubMember
的类型转换为user
可能是最好的方法吗?如果是这样,怎么办(在Groovy中)?
或者,您能否向我推荐除子类之外的实现方法?理想情况下,诸如“列出所有成员”之类的请求也应该返回用户,这是否属于子类的情况? (编辑:我的grails app就是这种情况)
相关:Java: Creating a subclass object from a parent object,Is it ever valid to convert an object from a base class to a subclass
答案 0 :(得分:0)
如果您希望某个类型的某个值成为不同类型的新值,那么您在Groovy中基本上有两种方式:
如果你想要转换方法(我很自由并且也在构造函数中调用转换方法)而不是在类中,你仍然可以使用asType版本或运行时元编程的类别来添加asType方法。需要或需要构造函数。
但蒂姆在评论中提出,让ClubMember成为用户的成员似乎真的是最容易的版本