java 泛型

来源:互联网 发布:c语言数组占几个字节 编辑:程序博客网 时间:2024/06/08 19:15

对于java中的泛型自己理解为:泛型的定义说白了就是,传带参数类型的类,方法,接口,就好比是定义时方法中传入参数一样

为什么定义泛型:

1.Java泛型可以解决类型安全问题,如果没有泛型集合中可以放入任何类型

2.没有泛型的遇到的麻烦:从集合中获取参数的时候,需要强制转换

3.泛型的使用有使用泛型类,使用泛型方法

注意:

1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。

2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。

3、泛型的类型参数可以有多个。

4、泛型的参数类型可以使用extends语句,例如<T extendssuperclass>。习惯上成为有界类型

5、泛型的参数类型还可以是通配符类型。例如Class<?> classType =Class.forName(Java.lang.String);

代码:

泛型的定义

//定义泛型类,可以理解为带一个参数类型为T的类public class Dao <T>{//类中的方法和变量的声明可以用该类的类型Tpublic T get(int id){//定义T类型的变量T result = null;return result;}//定义泛型方法,<E>和定义类一样表示//传入一个参数E类型的方法,该<>中可以有多个参数,之间用逗号隔开public <E> E gets(E name){E result = null;return result;}}



继承泛型类的情况

第一种:继承时把父类泛型参数带上,而子类没有则编译不过,如

public class Child1 extends Parent<T> {}


第二种:子类也带上父类的参数类型,编译通过

public class Child2<T> extends Parent<T> {}



第三种:父类不带上参数<T>,编译通过

public class Child3 extends Parent{}


还有关泛型继承的几种测试参考:
http://blog.csdn.net/java2000_net/article/details/3081472还请各位指出不足之处,谢了


0 0
原创粉丝点击