在我的模型中,我声明了一个接口:
Interface('IMovement') {
date_time 'etd'
date_time 'rtd'
}
而且我有很多扩展此接口的实体:
Entity('Entity1', extend:'IMovement') {
...
}
我想通过添加一个计算属性来增强接口,该属性计算日期之间的差异:rtd-etd。
我在接口上添加了计算属性,并生成了扩展名。
public class IMovementExtension extends AbstractComponentExtension<IMovement> {
public IMovementExtension(IMovement component) {
super(component);
//registerNotificationForwarding(component, IMovement.FIELD, IMovement.COMPUTED_FIELD);
} ...
但是Eclipse引发了以下错误:
边界不匹配:IMovement类型不能替代
类型的有界参数
AbstractComponentExtension
有没有一种方法可以在接口上声明计算属性?
最佳答案
您绝对可以在Jspresso接口上使用计算属性,但是必须告诉框架您的接口实现了(扩展)IComponent
,以便您可以使用扩展机制。
通过使用如下所示的服务条目可以轻松实现此目的:
Interface('IMovement',
extension:'IMovementExtension',
services:['org.jspresso.framework.model.component.IComponent':null]) {
...
}