public class Father<T, ID extends Serializable> { private Class<T> persistentClass;
public Father()
/* */ {
/* 43 */ this.persistentClass = ((Class<T>)((java.lang.reflect.ParameterizedType)super.getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
/* */ }
/* */
/* */ public Class<T> getPersistentClass()
/* */ {
/* 53 */ return this.persistentClass;
/* */ }
}
public class Son extends Father<Bean, String>{
public static void main(String args[])
{
System.out.println(new Son().getPersistentClass().toString());
}
}输出结果为bean 问题:
((Class<T>)((java.lang.reflect.ParameterizedType)super.getClass().getGenericSuperclass()).getActualTypeArguments()[0]);我调试了下,super.getClass()指向Son 为什么不是Father呢? 太奇怪了
解决方案 »
- java中如何保证准确得到刚插入oracle中的a表的一条数据的自增长id
- google maps v3 获取地理位置
- 关于EL表达式异常:javax.el.PropertyNotFoundException
- 两个url 是 同样的内容 请教解决办法
- 请教高手关于集群中的session复制的问题
- 求4道Java和JavaScript相关的题解答
- 在spring中发送电子邮件问题
- 路径问题,急!
- successView isn't set 在spring中是个什么意思?
- 按照规范,应该是调用setXXX方法的时候容器自动调用ejbStore,但是为什么之前它还要调用ejbLoad方法啊?(打断点看了的)
- 奇怪的写法 java ee
- struts2,增加拦截器后文件上传不了,
LZ你糊涂了.. 是调用方法 无论通过谁调用都是调用方法 除非你重写这个这个方法 否则他的作用都是获得当前对象的类型信息
LZ要冷静 我先问你 调用父类方法 父类是怎么实现getClass()的? 是获得当前对象的类型信息 那当前对象是谁? 是子类对象... LZ你先想想 好好想.. 把方法和对象的关系区分开..
不是得到父类CLASS 是调用父类的getClass方法获得当前对象的类型信息..
当然不对,super.getClass()返回的还是当前对象的class,因为这里指定的只是调用父类的getClass()方法,但是实际上getClass()从来没有被覆盖过,和调用this.getClass()是一致的
大家知道 oracle 关键字 new 的用法么