public class TestClass { static void func(List o, Object s){ o.add(s); } public static void main(String[] args){ func(new ArrayList(), new Integer(1)); } }
而事实并非如此
public class TestClass { static void func(List o, Object s){ o.add(s); } public static void main(String[] args){ func(new ArrayList(), new Integer(1)); } }
为什么?
为什么我们在使用List而不是在使用List时会丢失类型安全性? 他们基本上不一样吗?
不,他们不是一回事。
如果您要提供API,
class API { static List
并且客户端使用它不正确
List list = API.getList(); API.modifyList(list); for (Integer i : list) { ... } // Invalid