可迭代<String> 到可迭代<T>
Iterable<String> to Iterable<T>
覆盖的方法想要 return Iterable<T>
但在方法内部我有 Iterable<String>
。我如何从 Iterable<String>
甚至 Set<String>
return Iterable<T>
?
代码:
@Override
public Iterable<T> getAll() {
Set<String> set = getCache().keySet();
Iterable<String> iter = set;
return ?
}
简单的答案 - 你不能。无法转换。
声明 Iterable<T> getAll()
表示该方法预期 return 一个 Iterable
传递 T
的实例,其中 T
表示使用的参数类型当实例化封闭的泛型类型时。
如果您的代码只能 return 和 Iterable<String>
,那么它只会在 T
为 String
时满足调用站点的类型要求。如果这是可以接受的,那么您也可以摆脱泛型类型参数 T
.
覆盖的方法想要 return Iterable<T>
但在方法内部我有 Iterable<String>
。我如何从 Iterable<String>
甚至 Set<String>
return Iterable<T>
?
代码:
@Override
public Iterable<T> getAll() {
Set<String> set = getCache().keySet();
Iterable<String> iter = set;
return ?
}
简单的答案 - 你不能。无法转换。
声明 Iterable<T> getAll()
表示该方法预期 return 一个 Iterable
传递 T
的实例,其中 T
表示使用的参数类型当实例化封闭的泛型类型时。
如果您的代码只能 return 和 Iterable<String>
,那么它只会在 T
为 String
时满足调用站点的类型要求。如果这是可以接受的,那么您也可以摆脱泛型类型参数 T
.