定义泛型类别 可以使用魚括号一并指定泛型类别型态持 有者T真正的型态 GenericFoo<Boolean> fool= new Generic Foo<Boolean>i GenericFoo<Integer> foo2= new GenericFoo<Integer>()i fool. setFoo (new Boolean(true) Boolean b=foo1. getFoo();//不需要再转换型态 System. out. println(b) foo2 setFoo(new Integer(10))i Integer l=foo2. getFoO();/不需要再转换型态 System. out. println(i)i
定义泛型类别 • 可以使用角括号一并指定泛型类别型态持 有者T真正的型态 GenericFoo<Boolean> foo1 = new GenericFoo<Boolean>(); GenericFoo<Integer> foo2 = new GenericFoo<Integer>(); foo1.setFoo(new Boolean(true)); Boolean b = foo1.getFoo(); //不需要再转换型态 System.out.println(b); foo2.setFoo(new Integer(10)); Integer i = foo2.getFoo(); //不需要再转换型态 System.out.println(i);
定义泛型类别 型态或接口转换不再需要 省去恼人的 ClassCastEXception发生 编译程序可以帮您作第一层防线 Generic Foo<Boolean> fool= new GenericFoo<Boolean>( fool. setFoo(new Boolean(true))i Integer l=foo1. getFOO();/传回的是 Boolean型态 Generic Foo Demo.java: 7: incompatible types found java lang Boolean required: java. lang. Integer Integer i= fool. getFoo()i
定义泛型类别 • 型态或接口转换不再需要 – 省去恼人的ClassCastException发生 • 编译程序可以帮您作第一层防线 GenericFoo<Boolean> foo1 = new GenericFoo<Boolean>(); foo1.setFoo(new Boolean(true)); Integer i = foo1.getFoo(); //传回的是Boolean型态 GenericFooDemo.java:7: incompatible types found : java.lang.Boolean required: java.lang.Integer Integer i = foo1.getFoo();
定义泛型类别 声明及配置对象时不一并指定型态,默认 会使用 Object型态 GenericFoo foo3= new GenericFoo( foo3 setFoo (new Boolean(false))i 编译时编译程序会提出警讯 Note: GenericFoo Demo java uses unchecked or unsafe operations Note: Recompile with -Xlint: unchecked for details
定义泛型类别 • 声明及配置对象时不一并指定型态,默认 会使用Object型态 • 编译时编译程序会提出警讯 GenericFoo foo3 = new GenericFoo(); foo3.setFoo(new Boolean(false)); Note: GenericFooDemo.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details
定义泛型类别 Generic0o< Boolean>声明的foo1与 GenericFoo< nteger>声明的foo2是不同的 GenericFoo<Boolean> fool new GenericFoo<Boolean>(i GenericFoo<Integer> foo2= new GenericFoo<Integer>( 不可以将foo1所参考的实例指定给foo2,或 是将foo2所参考的实例指定給foo1 incompatible types found: GenericFoo<java. lang Integer> required: GenericFoo<java. lang Boolean> fool foo 2
定义泛型类别 • GenericFoo< Boolean>声明的foo1与 GenericFoo< Integer>声明的foo2是不同的 • 不可以将foo1所参考的实例指定给foo2,或 是将foo2所参考的实例指定給foo1 GenericFoo<Boolean> foo1 = new GenericFoo<Boolean>(); GenericFoo<Integer> foo2 = new GenericFoo<Integer>(); incompatible types found : GenericFoo<java.lang.Integer> required: GenericFoo<java.lang.Boolean> foo1 = foo2;