Java Iterable<;字符串>;到Iterable<;T>;
被重写的方法想要返回Java Iterable<;字符串>;到Iterable<;T>;,java,generics,iterable,Java,Generics,Iterable,被重写的方法想要返回Iterable,但在方法内部我有Iterable。如何从Iterable返回Iterable,甚至Set 代码: @覆盖 公共Iterable getAll(){ Set=getCache().keySet(); iter=set; 返回? } 简单的答案-你不能。不可能进行转换 声明Iterable getAll()表示该方法应返回一个Iterable,该方法提供T的实例,其中T表示实例化封闭泛型类型时使用的参数类型 如果您的代码只能返回一个Iterable,那么当T为S
Iterable
,但在方法内部我有Iterable
。如何从Iterable
返回Iterable
,甚至Set
代码:
@覆盖
公共Iterable getAll(){
Set=getCache().keySet();
iter=set;
返回?
}
简单的答案-你不能。不可能进行转换
声明Iterable getAll()
表示该方法应返回一个Iterable
,该方法提供T
的实例,其中T
表示实例化封闭泛型类型时使用的参数类型
如果您的代码只能返回一个
Iterable
,那么当T
为String
时,它将只满足呼叫站点的类型要求。如果这是可以接受的,那么您也可以去掉泛型类型参数T
如果泛型总是字符串,为什么还要使用泛型?您想返回什么?是键集
?如果是这样的话,您的方法返回类型应该是Iterable
,但我怀疑您应该返回其他内容,即Iterable
。是的,我应该返回Iterable,但我有一个集合。可以转换吗?
@Override
public Iterable<T> getAll() {
Set<String> set = getCache().keySet();
Iterable<String> iter = set;
return ?
}