- 首先要指出的是java中只能声明Lisy<String>[]这样的数组,但是不能创建ArrayList<String>[10]这样的数组对象,但是ArrayList[]是可以的,下面是两个简简单单的代码示例,注意的点穿插在代码中
package GenericAndArray; import java.util.ArrayList; import java.util.List; public class GenericAndArray { public static void main(String args[]){ List<String>[] lsa = new ArrayList[10]; // java不允许创建ArrayList<String>[10]这样的实例对象,但是像上面这一句创建数组对象 // 是允许的 List<String>[] lsa = new ArrayList<String>[10];就是错的 Object[] oa = (Object[])lsa; List<Integer> li = new ArrayList<Integer>(); li.add(new Integer(3)); oa[1] = li; // String s = lsa[1].get(0); // 这一句会发生类型不匹配的错误 } }
package GenericAndArray; import java.util.ArrayList; import java.util.List; public class GenericAndArray2 { public static void main(String args[]){ List<?>[] lsa = new ArrayList<?>[10]; Object[] oa = (Object [])lsa; List<Integer> li = new ArrayList<Integer>(); li.add(new Integer(3)); oa[1] = li; Object target = (String)lsa[1].get(0); // 这里需要进行类型的判断,否则会不安全,会发生类型不匹配的错误 if(target instanceof String){ String s = (String)(String)lsa[1].get(0); } } }
好了,泛型就到这里
java泛型(6)泛型数组
最新推荐文章于 2024-08-12 00:20:15 发布