重写的方法想要返回Iterable<T>
,但在我拥有Iterable<String>
的方法中。如何从Iterable<T>
甚至Iterable<String>
返回Set<String>
?
代码:
@Override
public Iterable<T> getAll() {
Set<String> set = getCache().keySet();
Iterable<String> iter = set;
return ?
}
答案 0 :(得分:5)
简单的答案 - 你不能。无法转换。
声明Iterable<T> getAll()
表示该方法应返回Iterable
,它传递T
的实例,其中T
表示封闭泛型类型时使用的参数类型实例
如果您的代码只能返回Iterable<String>
,那么只有在T
为String
时,它才会符合来电网站的类型要求。如果这是可以接受的,那么你也可以摆脱泛型类型参数T
。