|
|
1
1
因为B扩展了A,所以具体类编译得很好,因为Java 5在子类上返回类型可以是超类上返回类型的子类。 至于通用的,我已经碰到了同一面墙,而你有两个我知道的选项。 一种是对a进行参数化:
然后:
但是,这有一个缺点,即您需要给定的参数为,而不是将其固定,即使您需要:
关于你是否真的想要
同样,对于协方差,不能声明类型为的变量
另一个选择是活的事实是,进一步的实现/子类仍将引用a。 |
|
|
2
2
卡尔是对的,我的第一个答案没有汇编出来,但似乎是这样。不确定你到底想要什么。
|
|
3
1
其他答案有正确的要点,但是通过将泛型类型声明为
这将强制类返回其自身类型或更低类型的迭代器,因此您可以声明
但不是
我怀疑这更接近于您想要的(即实现必须返回迭代器,而不是简单地返回迭代器)
注意你的经历
|
|
|
4
0
我想这就是你想要的:
|
|
5
0
您的设计决策是您自己的,但我想不出任何理由让设计中的每个类实现它。集合中必须包含某种东西,但实际上不是集合本身。我会仔细研究一下基本设计。也许有些iterables想要返回与自身无关的事物的迭代器。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |