泛型初想

xiaoxiao2026-05-24  22

java中的泛型提供了在编译时期的类型检查,这让java语言更具健壮. 在泛型没有出来之前,也就是JDK1.5之前,往往使用的是Object这个根类来进行接口的声明.然后进行具体的类型转化. 更多的形式如下: foo.setFoo(new Integer(5)); Integer i =(Integer)foo.getFoo(); 而泛型的出现则省去了这一环节.典型的就是以一个参数如T 进行类型的申明.在实例与具体操作时进行类型的指定.如Foo<T> 当我们申明了: Foo<Integer> foo1 = null; Foo<Boolean> foo2 = null; 时,就不能 foo1 = new Foo<String>(""); foo2 = new Foo<String>(""); 也就是foo1,foo2只能代表Integer和Boolean的Foo,因为我们已经知道了它的具体所属类型. 如果我们不知道它具体为何类型可以申明为 Foo<?> foo = null 这样我们就可以对foo任意实例了: foo = new Foo<String>(""); foo = new Foo<Integer>(5);//autoboxing 当然我们也可以对这个未知类型进行限定: Foo<? extends List> foo; 这样foo就只有匹配List的子类了. 同样也可以时行向上限定 Foo<? super ArrayList> foo
转载请注明原文地址: https://www.6miu.com/read-5049309.html

最新回复(0)