小编Joe*_*eau的帖子

使用JDK 1.8时使用泛型类型的歧义参考

我知道之前已经问过这个问题的变体,我认为我理解了Java 8类型的分辨率系统,但是对于我认为不应该含糊不清的东西,我得到了一个模糊的引用错误:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

interface Function <T, E> {}

public class MyFns {
  public static <E, T> Collection<E> map(Function<? super T, E> fn, Collection<T> coll) {
    return new ArrayList<>();
  }

  public static <E, T> List<E> map(Function<? super T, ? extends E> fn, List<T> coll) {
    return new ArrayList<>();
  }

  public static <E, T> List<E> map(Function<? super T, ? extends E> fn, T[] coll) {
    return map(fn, Arrays.asList(coll));
  }
}
Run Code Online (Sandbox Code Playgroud)

通过JDK 1.8编译时,第三个重载会生成两个编译错误:

Error:(18, 12) java: …
Run Code Online (Sandbox Code Playgroud)

java generics

9
推荐指数
1
解决办法
184
查看次数

标签 统计

generics ×1

java ×1