Integer.TYPE
とInteger.class
が 両方でありClass<Integer>
、Double.TYPE
とDouble.class
が 両方であり、オートボクシングを使用してととClass<Double>
の間で変換する方法に注意してください。問題は、これが:と両方に当てはまるかどうかですが、 と の間で「変換」できますか?int
Integer
double
Double
void
Void.TYPE
Void.class
Class<Void>
void
Void
別の言い方をすれば、次のインターフェースがあるとします。
public interface Foo<T> {
public T doSomething();
}
を実装するクラスは、がボックス化されるため、 の実装で をFoo<Integer>
自由に返すことができます。を返す場合も同様です。したがって、 a : の場合、許容される唯一の値は null であるため (ほとんど正当化されない奇妙なリフレクションを行わない限り)、これは必須の を省略して効果的に "ボクシング"できることを意味しますか?int
doSomething()
int
Foo<Double>
double
Foo<Void>
Void
return null
Void