2012-01-30 57 views

回答

6

您可以使用

Type type = B.class.getGenericSuperclass(); 

// TODO: check with instanceof first? 
ParameterizedType parameterized = (ParameterizedType) type; 

// TODO: Check that there *are* type arguments 
Type firstTypeArgument = parameterized.getActualTypeArguments()[0]; 

短,但完整的例子:

import java.lang.reflect.*; 

class A<T> {} 
class B extends A<Integer> {} 

public class Test { 
    public static void main(String[] args) { 
     Type type = B.class.getGenericSuperclass(); 
     ParameterizedType parameterized = (ParameterizedType) type; 
     // Prints class java.lang.Integer 
     System.out.println(parameterized.getActualTypeArguments()[0]); 
    } 
} 
+0

正確的,因爲總是 – 2012-01-30 10:33:01