这是我的代码。
首先,我有两个班级:
public abstract class AbstractTypeReference<T> {
public Type type();
public AbstractTypeReference() {
Type superClass = getClass().getGenericSuperclass();
type = ((ParameterizedType) superClass).getActualTypeArguments()[0];
}
}
public class MyTypeReference<T> extends AbstractTypeReference<T> {
public MyTypeReference() {
super();
}
}
然后,我运行以下代码:
MyTypeReference<String> ref = new MyTypeReference<String>();
System.out.println(ref.type.toString());
我希望得到java.lang.String
作为输出,但得到T
。
代码是从com.fasterxml.jackson.core.type
复制的。但它运作良好。谁能告诉我有什么问题?为什么?