Java泛型

发布时间 2024-01-09 11:33:30作者: 郭慕荣

1. 泛型
Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。
泛型的本质就是参数化类型(类型参数化),也就是所操作的数据类型被指定为一个参数。

private static void m2() {
        ArrayList<String> list=new ArrayList<>();
        list.add("333");
        list.add("string");
        //list.add(88); 编译期检查
        for (String s : list) {
            System.out.println(s); //减少了数据类型转换
        }
    }
 
    /**
     * 未使用泛型之前
     */
    private static void m1() {
        ArrayList objects = new ArrayList();
        objects.add("111");
        objects.add(88);
        objects.add(true);
 
 
        for (Object object : objects) {
 
            System.out.println(object);
        }
    }

2. 泛型的优点

  • 1.类型安全,编译期检查
  • 2.消除了强制类型的转换、提高效率

二、泛型的使用
1. 泛型的注意事项

  • 泛型类,如果没有指定具体的数据类型,此时,操作类型是Object
  • 泛型的类型参数只能是类类型,不能是基本数据类型
  • 泛型类型在逻辑上可以看成是多个不同的类型,但实际上都是相同类型
  • 泛型的使用,类型参数化,泛型标识,由外部使用类来指定
  • 可以结合后面的泛型擦除理解,泛型擦除之后 Generic < String > 和Generic< Integer >都是Generic类。

2. 泛型的语法
泛型类

T:type
E:element
K: key
V :value
?:表示不确定的java类型
一般是单个大写字母