是否存在XXX<T>可以使用for-each迭代并且包含两者的类型T[],Iterable<T>以便以下编译(假设类上下文和兼容方法do_something)?
public void iterate(XXX<T> items)
{
for (T t : items)
do_something(t);
}
public void iterate_array(T[] items)
{
iterate(items);
}
public void iterate_iterable(Iterable<T> items)
{
iterate(items);
}
Run Code Online (Sandbox Code Playgroud)
在Java 1.5中,我没有发现任何类型.也许在该语言的更高版本中?(我想这可能是一个常见问题解答.如果它是噪音,请注意.快速谷歌搜索没有给出答案.)
简短的回答是:不,没有类型涵盖两者.
简单的解决方案是将数组包装在一个List,然后只需调用它
public void iterate_array(T[] items)
{
iterate(Arrays.asList(items));
}
public void iterate_array(Iterable<T> items)
{
for (T t : items)
do_something(t);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |