编译时类型安全
运行时ClassCastException的可能
当没有指定泛型集成的类型或接口时,默认使用T extends Objcet,所以默认情况下任何类型都可以作为参数传入。理由是如果允许加入的话就得记住取回的实例是什么类型,并强制转型,这使泛型就是去了意义。
例如
GenericTest<? extends Object> ge4=new GenericTest<String>();
g4.getFoo();//取出
g4.setFoo(null);//移除
g4.setFoo("abc");//编译器报错,不能改变
public Class A<T>{};
类定义中指定T必须继承于SomeClass
public Class A<T extends SomeClass>{};
使用<?>或是<? extends SomeClass>声明中指定必须继承于SomeClasst,意味着只能通过该名称来取得所参考实例的信息 或者是移除某些信息但不能增加它的信息。因为只知道当中放置的是SomeClass的子类但不确定是什么类的实例,边吸气不会让你加入信息
A<? extends SomeClass> a;
声明中指定必须是SomeClass的父类
A<? super SomeClass> a;
Generics继承
public class<T1,T2,T3> child extends Parent<T1,T2>
{
}
Generics接口
public interface ParentInterface<T1,T2>
{
}
public class<T1,T2> child implements ParentInterface<T1,T2>
{
}
分享到:
相关推荐
jdk5.0新特性介绍
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
jdk5.0新特性 包括泛型,增强的for循环,自动的封箱和拆箱
2.JDK5.0新特性.doc 2.JDK5.0新特性.doc
JDK5.0新特性,视频教学课件,可用容易学
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
JDK5.0新特性 因为,在1.5版本中,对一个整数进行包装,使之成为一个Integer对象(即包装,boxing),然后加入到一个ArrayList中的做法被认为是没有必要的,反之,解包(unboxing)的做法也是没有必要的,这样的...
[浪曦][原创]JDK5.0新特性[风中叶老师主讲[浪曦][原创]JDK5.0新特性[风中叶老师主讲[浪曦][原创]JDK5.0新特性[风中叶老师主讲
[浪曦][原创]JDK5.0新特性[风中叶老师主讲][浪曦][原创]JDK5.0新特性[风中叶老师主讲][浪曦][原创]JDK5.0新特性[风中叶老师主讲]
jdk1.5以上版本中新增加的特性描述,带有代码例子让你很清晰的明白jdk的 常量 、枚举、 for each、反射等各种新的特性,相信需要的你,一定满足。
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
浪曦 - JDK5.0新特性.part2
浪曦 - JDK5.0新特性.part3
浪曦 - JDK5.0新特性.part5.rar
浪曦 - JDK5.0新特性.part4.rar
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part
[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part[浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part