reifiable type与raw type

下面的逻辑需要明白如下两个概念:  

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

  

  

猜你喜欢

转载自www.cnblogs.com/extjs4/p/9209276.html