假設我聲明一些抽象方法,將返回Class對象(如Dog.class,Cat.class),像這樣:我可以聲明方法來將具有限制的Class對象返回給Java中給定類型的子類嗎?
abstract public Class getProducedAnimalType();
我可以強制擴展這個API的客戶代表類只返回Class對象,這是Animal.class的子類嗎?是這樣的:
abstract public Class<representing subclass of Animal> getProducedAnimalType();
所以延長我的類客戶端不能寫:
public Class getProducedAnimalType() {
// Integer not extends Animal!, shoud not compile!
return Integer.class;
}
但可以:
public Class getProducedAnimalType() {
return Fish.class; // Fish extends Animal
}