1、为什么用泛型?2、泛型概念3、泛型类4、从泛型类派生子类5、泛型接口6、泛型通配符6、类型擦除
1、为什么用泛型?早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在隐患,所以java提供了泛型这个安全问题。
2、泛型概念泛型,参数化类型参数化类型,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式,在调用时传入具体值java泛型(generics)是jdk5的新特性,泛型提供了编译时类型安全检测机制,泛型在编译时就能检查类型安全。 3、泛型类
创建CommonResult,使用泛型,
public class CommonResult{ int code; T data; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public T getData() { return data; } public void setData(T data) { this.data = data; } }
传入的实参类型需与泛型的类型参数类型相同
public class TestCommon{ public static void main(String[] args) { CommonResult4、从泛型类派生子类commonResult =new CommonResult<>(); commonResult.setData("sss"); } }
子类也是泛型类,子类和父类的泛型类型要一致
class Aextends Demo
子类不是泛型类,父类要明确泛型的数据类型
class A extends Demo5、泛型接口
//public class User implements Comparable6、泛型通配符{ public class User implements Comparable { @Override public int compareTo(T o) { return 0; } public static void main(String[] args) { new User (); } }
一般使用“?”代替具体的类型实参类型通配符上限
类/接口<?extends 实参类型>
类型通配符上限
类/接口<?super 实参类型>
eg:
泛型是java1.5版本才引进的概念,泛型代码能很好地和之前版本的代码兼容。泛型只存在于代码编译阶段,在进入JVM之前,与泛型相关信息会被擦除掉,称为—类型擦除。擦除后,相应的类型被替换成Object类型或者上限类型。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)