【发布时间】:2017-05-18 18:55:40
【问题描述】:
我的目标是:能够将对象数组(在本例中为Animal)保存到磁盘。然后我希望能够加载它们。我已经使用 JSON 来执行此操作,但为了清楚起见,在此 sn-p 中省略了它。我希望能够制作更多的 Animal 类,它们将有更多的字段(请参阅下面的 Unicorn Class)。
无法预先知道对象的类别。如何让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子类可能不应该有Animal animal字段... -
@king_nak 是的!这只是早期(不正确)方法的产物,应该被忽略。
标签: java processing