Iterable <String>到Iterable <T>

use*_*930 -2 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 ?
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*n C 5

简单的答案 - 你不能.无法进行转换.

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

如果你的代码只能返回一个Iterable<String>那么当它只能满足通话网站的类型要求TString.如果这是可以接受的,那么你也可以摆脱泛型类型参数T.