美文网首页
java中的泛型

java中的泛型

作者: pretty_rain | 来源:发表于2019-08-26 15:52 被阅读0次
1.泛型的概述

是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型

2.格式

<数据类型> 只能是引用类型

3.好处

a:把运行时期的问题提前到了编译期间
b:避免了强制类型转换
c:优化了程序设计,解决了黄色警告线问题,让程序更安全

4.泛型的用法

a:泛型类

class  Demo{
   ObjectTool<String> otool = new ObjectTool<String>();
   otool.show("hello");//hello
}
class ObjectTool<T>{
   public void show(T t){
         Systemo.out.println(t);
}
}

b:泛型方法

class  Demo{
   ObjectTool otool = new ObjectTool();
   otool.show("hello");//hello
}
class ObjectTool{
   public <T> void show(T t){
         Systemo.out.println(t);
}
}

c:泛型接口a

class  Demo{
   Animal<String>  animal= new Dog();
   otool.show("hello");//hello
}
class Dog implements Animal<String>{
   public  void show(String str){
         Systemo.out.println(str);
   }
}
public interface Animal<T>{
   public  void show(T  t){
         Systemo.out.println(t);
   }
}

d:泛型接口b

class  Demo{
   Animal<String>  animal= new Dog<String>();
   otool.show("hello");//hello
}
class Dog<T> implements Animal<T>{
   public  void show(T  t){
         Systemo.out.println(t);
   }
}
public interface Animal<T>{
   public  void show(T  t){
         Systemo.out.println(t);
   }
}

e:泛型高级通配符 ?、? extends E、? super E

class  Demo{
//匹配所有
Collection<?>  collection1 = new ArrayList<Animal>();
Collection<?>  collection2 = new ArrayList<Dog>();
Collection<?>  collection3 = new ArrayList<Cat>();
Collection<?>  collection3 = new ArrayList<Object>();

//匹配 animal和animal的子类
Collection<? extends Animal>  collection1 = new ArrayList<Animal>();
Collection<? extends Animal>  collection2 = new ArrayList<Dog>();
Collection<? extends Animal>  collection3 = new ArrayList<Cat>();

//匹配 animal和animal的父类
Collection<? super Animal>  collection1 = new ArrayList<Animal>();
Collection<? super Animal>  collection2 = new ArrayList<Dog>();
Collection<? super Animal>  collection3 = new ArrayList<Cat>();
}
class Animal{ 
}
class Dog extends Animal{}
class Cat extends Animal{}

相关文章

  • JAVA泛型的理解

    泛型大家都接触的不少,但是由于Java历史原因,Java中泛型一直被称为伪泛型,因此对Java中的泛型,有很多不注...

  • Kotlin 泛型

    Kotlin 支持泛型, 语法和 Java 类似。例如,泛型类: 泛型函数: 类型变异 Java 的泛型中,最难理...

  • Java泛型教程

    Java泛型教程导航 Java 泛型概述 Java泛型环境设置 Java泛型通用类 Java泛型类型参数命名约定 ...

  • Java泛型

    参考:Java知识点总结(Java泛型) 自定义泛型类 自定义泛型接口 非泛型类中定义泛型方法 继承泛型类 通配符...

  • Android 开发也要掌握的Java知识 - Java泛型

    如果需要看泛型擦除Java泛型擦除 1.Java泛型有什么用?为啥要使用泛型? Java中数组的类型是定义的时候就...

  • 15、泛型常用特点

    泛型常用特点 泛型是Java SE 1.5之后的特性,《Java 核心技术》中对泛型的定义是: “泛型” 意味着编...

  • 泛型中 ? super T和 ? extends T的区别

    首先, 说到 Java 的泛型, 我们必须要提到的是Java 泛型的类型擦除机制: Java中的泛型基本上都是在编...

  • java 泛型解析

    Java 泛型 1、泛型的精髓是什么 2、泛型方法如何使用 概述: 泛型在java中具有重要地位,在面向对象编程模...

  • Java 泛型

    一、概述 1.1 什么是Java泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型...

  • 泛型(一)

    1. Java中的泛型是什么 ? 使用泛型的好处是什么? 泛型是Java SE 1.5的新特性,泛型的本质是参数化...

网友评论

      本文标题:java中的泛型

      本文链接:https://www.haomeiwen.com/subject/mkxdectx.html