考虑一下:
public abstract class AbstractHibernateDao< T extends Serializable > {
private T clazz;
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
public abstract class AbstractHibernateDao< T extends Serializable > {
private Class< T > clazz;
}
Run Code Online (Sandbox Code Playgroud)
我能够编译两者 - 所以我肯定在这里做了一些基本的检查.
Psh*_*emo 11
T clazz我们期望一个类的实例,Class< T > clazz我们期望一个实例Class描述T(class literal).所以,T我们将使用Integer.在这种情况下:
clazz可以让我们存储1,2等等.Integer.class.private T clazz;
Run Code Online (Sandbox Code Playgroud)
这里clazz可以保存任何类型,即可序列化类型,甚至是您的自定义类对象(如果它是可序列化类型)。
在本例中,名称表明它是一个类 ( clazz),但值需要是 Class 对象。
private Class< T > clazz;
Run Code Online (Sandbox Code Playgroud)
在这里,它是的类型Class。Class是泛型类型,因此这里 clazz 只能保存Type 为 Serialized 的Class 对象。