java中的泛型机制

2021-01-30 23:14

阅读:666

标签:报错   语法   log   nim   表达式   程序   出现   转换   自定义   

  • 泛型
    这种语法机制,只在程序编译阶段起作用,只是给编译器参考的。(运行阶段泛型没用)
  • 使用了泛型好处是什么?
    第一:集合中存储的元素类型统一。
    第二:从集合中取出的元素类型是泛型指定的类型,不需要进行大量的向下转型。
  • 泛型的缺点是什么?
    导致集合中存储的元素缺乏多样性。
  • 代码示例:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Demo {
    public static void main(String[] args) {
        /*使用泛型List之后,
        表示List集合中只允许存储Animal类型的数据。
        用泛型来指定集合中存储的数据类型。*/
        List list = new ArrayList();
        /*指定List集合中只能存储Animal,
        那么存储String就编译报错了。这样用了泛型之后,
        集合中元素的数据类型更加统一了。*/
        list.add(new Animal());
        list.add(new Cat());
        /*这个表示迭代器迭代的是Animal类型。*/
        Iterator it = list.iterator();
        while (it.hasNext()){
            /*使用泛型之后,每一次迭代返回的数据都是Animal类型。*/
            Animal a = it.next();
            /*这里不需要进行强制类型转换,直接调用*/
            a.move();
        }
    }
}
class Animal{
    public void move(){
        System.out.println("Animal move");
    }
}
class Cat extends Animal{
    public void move(){
        System.out.println("Cat move");
    }
}

输出:
技术图片

  • 类型自动推断
    1、JDK8之后引入自动类型推断机制。(又称为钻石表达式)
    2、上面的第10行代码改为:
List list = new ArrayList();
  • 自定义泛型
    1、自定义泛型的时候,尖括号中的是一个标识符,随便写。
    2、java源代码中经常出现的是:,E是Element单词首字母。T是Type单词首字母。
    3、代码示例:
public class Demo{
    /*这里的qwe是标识符,随便写*/
    public void dosome(qwe o){
        System.out.println(o);
    }

    public static void main(String[] args) {
        Demo demo = new Demo();
        demo.dosome("aaa");
        Demo demo1 = new Demo();
        demo1.dosome(123);
    }
}

输出:
技术图片

java中的泛型机制

标签:报错   语法   log   nim   表达式   程序   出现   转换   自定义   

原文地址:https://www.cnblogs.com/yu011/p/12818848.html

上一篇:Springboot整合Junit

下一篇:springboot拦截器


评论


亲,登录后才可以留言!