Java-generics-raw-types

提供:Dev Guides
移動先:案内検索

Javaジェネリック-生の型

生の型は、その型引数が作成中に渡されない場合、ジェネリッククラスまたはインターフェイスのオブジェクトです。 次の例では、上記の概念を紹介します。

任意のエディターを使用して、次のJavaプログラムを作成します。

GenericsTester.java

package com.finddevguides;

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;
   }
}

これにより、次の結果が生成されます。

出力

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