Java递归限制_java – 几乎循环类型绑定的递归类型参数

正如@SimonAndréForsberg所讨论的那样,编程太过防守往往是不必要的浪费时间,我们应该相信我们自己的声明.

但是,为了获得乐趣,这里是一个解决方案,可以在编译时强制执行所有在类/接口声明上的限制.

声明

视图界面:

public interface View> {}

>这里,我们只想确保type参数是可视的.

>第二个类型的参数不需要限制,因为Viewable的声明将不允许可视的< T,?>如果存在?本身不是View< T>.

可视界面:

public interface Viewable,V extends View> {

public void addViewCallback(final V view);

public void removeViewCallback(final V view);

}

>这里,T需要被声明为可见,因为我们将其用作View< T>的类型参数.在行尾.

>与以前一样,不需要限制?因为我们说之后,第二个类型的参数需要是一个View< T>如果第一类参数是T.

public class Hand implements Viewable {

@Override

public void addViewCallback(HandView view) {}

@Override

public void removeViewCallback(HandView view) {}

}

public interface HandView extends View {

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值