Я столкнулся с, казалось бы, простой проблемой, которую мне трудно решить. Моя цель - создать объект spawner, который создает объект всякий раз, когда он вызывается, что-то вроде этого:
public class FishSpawner{
public Fish spawnFish(){
return new BlueFish(0, 0);
}
}
Это работает и позволяет мне создавать синий fi sh в координатах 0,0 моего мира. . Но вместо того, чтобы копировать этот класс для каждого типа Fi sh, который я хочу создать, я решил, что сохраняю тип fi sh, который хочу создать в конструкторе, а затем создаю объект этого класса в функции создания. Например:
public class FishSpawner{
private Class<? extends Fish> fishType;
public FishSpawner(Class<? extends Fish> fishType){
this.fishType = fishType;
}
public Fish spawnFish(){
return fishType.newInstance(0, 0);
}
}
Однако это не работает. Он сообщает мне, что newInstance устарел, а также не позволяет мне передавать аргументы его конструктору. Но все примеры, которые мне удалось найти в Google, используют метод newInstance. Может ли кто-нибудь указать мне правильное направление?