【发布时间】:2015-09-17 03:32:06
【问题描述】:
有谁知道是否可以在 ActiveAndroid 中为抽象类创建表。例如,我可以有一个抽象类 Animal 和两个具体类 Dog 和 Cat。我希望能够做类似的事情:
List<Animal> animals = new Select().from(Animals.class).execute();
这将导致“动物”包含所有已保存的猫和狗。 或者:
Animal animal = new Select().from(Animals.class).where("name = ?", name).executeSingle();
其中“动物”可以是猫或狗。 不幸的是,当我这样做时,我得到了一个异常,因为没有为抽象类 Animal 创建表。 有谁知道我如何使用 ActiveAndroid 来解决这个问题?
【问题讨论】:
-
不能用基类代替抽象吗?
-
我不太确定我明白你为什么要这样做? Abstract 类的全部目的是让您必须使用子类,例如
Cat或Dog。请注意您是如何创建Animal animal对象的,这无法在 Java 中完成,但是您可以事先完成列表,尽管在使用该对象之前您必须转换为适当的子类。 -
我不会在上面的示例中创建抽象的“动物”。我希望 ActiveAndroid 根据最初保存对象的类型来构造 Cat 或 Dog。
标签: java android sqlite orm activeandroid