原始类型(Raw Types)

优质
小牛编辑
132浏览
2023-12-01

如果类型参数在创建期间传递了npt,则原始类型是泛型类或接口的对象。 以下示例将展示上述概念。

例子 (Example)

使用您选择的任何编辑器创建以下Java程序。

GenericsTester.java

package cn.xnip;
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();
      //No warning
      rawBox = box;
      System.out.printf("Integer Value :%d\n", rawBox.getData());
      //Warning for unchecked invocation to set(T)
      rawBox.set(Integer.valueOf(10));
      System.out.printf("Integer Value :%d\n", rawBox.getData());
      //Warning for unchecked conversion
      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;
   } 
}

这将产生以下结果。

输出 (Output)

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