本帖最后由 曹睿翔 于 2013-4-10 06:38 编辑
我的疑问,ParameterizedType 是Type接口的子类接口,其中有三个方法,上述代码中调用了 pType.getRawType()和pType.getActualTypeArguments()[0]这两个,接口中的方法都是抽象的,没有方法体,怎么能调用,并能返回值?
ParameterizedType pType = (ParameterizedType)types[0];//这一句很奇葩啊,算不算面向接口编程?接口类型变量能调用其抽象方法?- public class GenericTest {
- public static void main(String[] args) throws Exception {Method applyMethod = GenericTest.class.getMethod("applyVector", Vector.class);
- Type[] types = applyMethod.getGenericParameterTypes();
- ParameterizedType pType = (ParameterizedType)types[0];
- //参数化类型ParameterizedType
- System.out.println(pType.getRawType());
- //原始类型,Class java.util.vector
- System.out.println(pType.getActualTypeArguments()[0]);
- //实际参数化类型的数组,打印结果Class java.util.Data
- }
-
- public static void applyVector(Vector<Date> v1){
-
- }
- }
复制代码 |