java 泛型

1.泛型类

2.泛型接口

3.泛型方法

4.泛型集合

5.泛型通配符:?

 

package com.ligy.studymvc;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

@SpringBootTest
public class JHTests {
    public class AA<T> {
        private T a;

        public T getA() {
            return a;
        }

        public void setA(T a) {
            this.a = a;
        }
    }

    //泛型方法
    <M> void aa(M a) {

        System.out.println(a);
    }

    //泛型通配符:?
    //只能作参数传递,不能实例化的时候用
    void show(ArrayList<?> list) {
        Iterator<?> iterator = list.iterator();

        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }

    @Test
    void test3() {
        aa("111");
        aa(222);

        AA<Integer> t1 = new AA<>();
        t1.setA(123);
        System.out.println(t1.getA());

        AA<String> t2 = new AA<>();
        t2.setA("aaaa");
        System.out.println(t2.getA());

        ArrayList<Integer> t3 = new ArrayList<>();
        t3.add(11);
        t3.add(22);
        show(t3);

        ArrayList<String> t4 = new ArrayList<>();
        t4.add("aa");
        t4.add("bb");
        show(t4);
    }

    @Test
    void test2() {
        ArrayList<String> list = new ArrayList<>();
        list.add("111");
        //list.add(222); //这样报错;数据类型,不能第二种

        String o1 = list.get(0);

        System.out.println(o1);
    }

    @Test
    void test1() {
        ArrayList list = new ArrayList();
        list.add("111");
        list.add(222);

        Object o1 = list.get(0);
        Object o2 = list.get(1);
        //int o2 = list.get(1);  //这样编译报错
        System.out.println(o1);
        System.out.println(o2);
    }
}

 

上一篇:typora相关笔记


下一篇:Typora+picGo-core+云对象存储+以时间戳命名图片存储