Iterable <string>到Iterable <t>

时间:2016-08-18 14:51:53

标签: java generics iterable

重写的方法想要返回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 ?
}

1 个答案:

答案 0 :(得分:5)

简单的答案 - 你不能。无法转换。

声明Iterable<T> getAll()表示该方法应返回Iterable,它传递T的实例,其中T表示封闭泛型类型时使用的参数类型实例

如果您的代码只能返回Iterable<String>,那么只有在TString时,它才会符合来电网站的类型要求。如果这是可以接受的,那么你也可以摆脱泛型类型参数T