【发布时间】:2016-10-17 14:21:00
【问题描述】:
对于那些没有在android 中使用sugarORM 的人,我想要的是选择一个对象应该有什么类数据类型。例如,
Class1 c;
If(statuscode==1){
c = new Class1();
}else if(statuscode==2){
c = new Class2();
}else if(statuscode==3){
c = new Class3();
}
但这会在案例 2 和案例 3 中给出我的转换错误。那么,如何解决呢?
详细一点,对于那些了解Android中的sugarORM的人
我在android中使用sugarORM,我有一种情况,我需要根据某些条件从四个表中的任何一个表中选择所有行,或者我需要做其他事情。
例如,
List<Table1> list = Table1.listAll(Table1.class);
or
Table1 t = new Table1();
现在,根据我收到的 Intent 的状态码,我需要使用 Table1、Table2、Table3 或 Table4
意思是,我需要使用任何一个
List<Table1> list = Table1.listAll(Table1.class);
or
List<Table2> list = Table2.listAll(Table2.class);
or
List<Table3> list = Table3.listAll(Table3.class);
or
List<Table4> list = Table4.listAll(Table4.class);
我该怎么做?
我尝试的是,在我的代码中任何需要列出所有行或实例化该表的新对象的地方都使用 switch case
List<Table1> list=null;
switch (statuscode){ //statuscode in Integer 1,2,3,4
case 1:
list = Table1.listAll(Table1.class);
break;
case 2:
list = Table2.listAll(Table2.class);
break;
case 3:
list = Table3.listAll(Table3.class);
break;
}
但显然情况 2 和情况 3 会出现转换错误
那么,这类问题的解决方案是什么?
【问题讨论】:
-
你为什么不能使用
interface -
是的。定义一个接口
A,让你的三个类实现A并将c声明为A,如下所示:A c; -
创建一个名为 Table 的类。然后让表1、2、3实现这个。
-
@Scary Wombat 让我试试,到时候通知你
-
@AhmadWabbi 让我试试,到时候通知你
标签: java android class casting sugarorm