Java18-泛型的基础知识

泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。
可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。


泛型接口:
public interface Collection<E> extends Iterable<E>{..}
泛型类:
public class Generic<T> { private T key; //key这个成员变量的类型为T,T的类型由外部指定 }
泛型方法:
public void play( List<String> animal){...} public void test(List<?> list){...} public void play( List<? extends Animal> animal){...} public Generic(T key) { //泛型构造方法形参key的类型也为T,T的类型由外部指定 this.key = key;} 注意事项: 1.<> 尖括号里边 的参数类型是引用数据类型,不能是基本数据类型 2.类型参数用尖括号加任意字母表示 : <T>,字母一般为单个大写字母,并有一定含义, 例如 T(type),E(element),K(key),V(value) 等等 3.泛型通配符 ?

 

----------------------------------------------------------泛型实践--------------------------------------------------------

Student:

package factory.Student;

public class Student {
public Student(){
        
    }
    //**********字段*************//
    public String name;
    protected int age;
    char sex;
    private String phoneNum;
    
    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + ", sex=" + sex
                + ", phoneNum=" + phoneNum + "]";
    }
    


}

test_0809
:
public class test_0809 {
    public String name = "123";
}

泛型:

package doudou.fanxing;

import java.util.ArrayList;
import java.util.List;

import doudou.test_0809;
import factory.Student.Student;

public class test_fanxing01 {
    private static final Object String = null;

    public static void main(String[] args) {
        test_fanxing01();
    }

    public static void test_fanxing01() {
        List<? super Object> list = new ArrayList<>();
        list.add(new String("123456789"));
        list.add(new Integer(111));
        list.add(new Student()); 
        list.add(new test_0809());
        
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
 
}

代码运行结果:

 

posted @ 2020-09-02 11:05  eosclover  Views(297)  Comments(0Edit  收藏  举报