如果原始类型的类型参数在创建过程中未传递,则原始类型是通用类或接口的对象。以下示例将展示上述概念。

package com.learnfk;

public class GenericsTester {
   public static void main(String[] args) {
      Box<Integer> box = new Box<Integer>();
      
      box.set(Integer.valueOf(10));
      System.out.printf("Integer Value :%d\n", box.getData());
      
      
      Box rawBox = new Box();
      
      //没有警告
      rawBox = box;
      System.out.printf("Integer Value :%d\n", rawBox.getData());
      
      //未检查调用 set(T) 的警告
      rawBox.set(Integer.valueOf(10));
      System.out.printf("Integer Value :%d\n", rawBox.getData());
      
      //未经检查的转换警告
      box = rawBox;
      System.out.printf("Integer Value :%d\n", box.getData());
   }
}

class Box<T> {
   private T t; 

   public void set(T t) {
      this.t = t;
   }

   public T getData() {
      return t;
   } 
}

这将产生以下输出。

Integer Value :10
Integer Value :10
Integer Value :10
Integer Value :10

参考链接

https://www.learnfk.com/java-generics/java-generics-raw-types.html