import java.util.Collection;
public class Test
{
public static void main(String[] args)
{
Collection c = null;
Test s = null;
s = (Test) c;
}
}
在上面的代码示例中,我将一个集合对象转换为一个 Test 对象。(忽略空指针)。Test与 Collection没有任何关系,但该程序将通过所有编译时检查。
我想知道这是为什么。我的假设是接口被忽略是因为它们太复杂了。它们没有通用的超类型,每个类都可以实现多个接口,所以类/接口层次结构太复杂而无法有效搜索?
除了这个原因,我很困惑。有人知道吗?!