我无法弄清楚为什么这段代码没有错误.
static <T> int compare(T t1, T t2) {
return 0;
}
public static void main(String[] args) {
compare(new Thread(), new StringBuilder());
}
Run Code Online (Sandbox Code Playgroud)
因为我们有这样的事情:
static <T> void fromArrayToCollection(T[] a, Collection<T> c) {
return;
}
public static void main(String[] args) {
fromArrayToCollection(new Thread[] {}, new ArrayList<StringBuilder>()); // error
}
Run Code Online (Sandbox Code Playgroud)
我们有一个错误.为什么编译器在第一个示例中没有检查两个参数的匹配?抱歉愚蠢的问题.