Моя цель такова: иметь возможность сохранять массив объектов (в данном случае; Animal
) на диск. Тогда я хотел бы иметь возможность загружать их. Я использовал JSON для этого, но оставил его в этом фрагменте для ясности. Я хотел бы иметь возможность сделать еще много классов Animal
, которые будут иметь еще много полей (см. Unicorn
Class
ниже).Create Class from String input
Класс объекта не может быть известен заранее. Как я могу получить addAnimal
для работы с использованием ввода String
?
AnimalWrangler aw;
void setup()
{
aw = new AnimalWrangler();
aw.addAnimal("cat");
aw.addAnimal("horse");
aw.addAnimal("unicorn");
aw.addAnimal("unknown");
}
class AnimalWrangler
{
ArrayList<Animal> animals;
AnimalWrangler()
{
animals = new ArrayList<Animal>();
}
void addAnimal(String type)
{
//makes an animal according to type
///if type does not exist then throw
//add to animals array
}
}
class Animal
{
String type;
Animal()
{
}
}
class Cat extends Animal
{
Animal animal;
Cat()
{
animal = new Animal();
type = "cat";
}
}
class Horse extends Animal
{
Animal animal;
Horse()
{
animal = new Animal();
type = "horse";
}
}
class Unicorn extends Animal
{
Animal animal;
float magic_level;
/////classes can have any number of attributes
Unicorn()
{
animal = new Animal();
type = "unicorn";
}
}
Ваша проблема действительно выглядит как база данных NoSQL с подходом к документу ... –
Подклассы 'Animal', вероятно, не должны иметь поля« Животное животных »... –
@king_nak да! это просто артефакт более раннего (неправильного) подхода и его следует игнорировать. – jackoverflow