reifiable type與raw type
阿新 • • 發佈:2018-06-21
elf IV doc array oracl per member zed ive
下面的邏輯需要明白如下兩個概念:
4.7. Reifiable Types
4.8. Raw Types
舉幾個是Reifiable Types的例子,如下:
class A{} class B<T>{} class C<T>{ class D<X>{ } } class TestType{ public void test(){ //It refers to a non-generic class or interface type declaration. A a; // It is a parameterized type in which all type arguments are unbounded wildcards B<?> b; // It is a primitive type int c; // It is an array type (§10.1) whose element type is reifiable. int[] d; // It is a nested type where, for each type T separated by a ".", // T itself is reifiable. C<?>.D<?> e; // It is a raw type } }
舉幾個是Raw Types的例子,如下:
class A{} class B<T>{} class C<T>{ class D<X>{ } class E{ T e; } } class TestType{ public void test(){ // A non-generic class or interface type is not a raw type. A a; // The reference type that is formed by taking the name of // a generic type declaration // without an accompanying type argument list. B b; // An array type whose element type is a raw type. B[] c; // A non-static member type of a raw type R that is not inherited // from a superclass or superinterface of R C.D d; C.E e; } }
reifiable type與raw type