想象一下这堂课:
public class ObjectCreator {
private Class persistentClass;
public ObjectCreator(Class persistentClass) {
this.persistentClass = persistentClass;
}
public T create() {
T instance = null;
try {
instance = persistentClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return instance;
}
}
现在我用域对象对其进行子类化:
public class PersonCreator extends ObjectCreator{
/**
* @param persistentClass
*/
public PersonCreator() {
super(Person.class);
}
}
一切都很棒……
但是,如果我尝试使用另一个通用域对象将其子类化,编译器会抱怨:
public class MessageCreator extends ObjectCreator>{
/**
* @param persistentClass
*/
public MessageCreator() {
super(Message.class);
}
}
The constructor ObjectCreator>(Class) is undefined MessageCreator.java
我认为这是一个很大的限制:为什么这是禁止的?
任何想法如何解决?
马西莫