Для тех, кто не использует sugarORM в android, я хочу, чтобы выбрать, какой тип данных класса должен иметь объект. Например,Выберите тип данных, основанный на некотором состоянии
Class1 c;
If(statuscode==1){
c = new Class1();
}else if(statuscode==2){
c = new Class2();
}else if(statuscode==3){
c = new Class3();
}
Но это даст мою ошибку при бросании в случае 2 и случае 3. Итак, как ее решить?
подробно, для тех, кто знает sugarORM в Android
Я использую sugarORM в андроиде и у меня есть ситуации, когда мне нужно выбрать из всех строк из любого одного из четыре таблицы на основе некоторого условия, или , Мне нужно сделать что-то еще.
Для примера,
List<Table1> list = Table1.listAll(Table1.class);
or
Table1 t = new Table1();
Теперь, на основании коды состояния намерения я получаю, мне нужно использовать Table1, Table2, Таблицу 3 или 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);
Как это сделать?
То, что я пытался есть, чтобы использовать переключатель дело везде в моем коде, где мне нужно перечислить все строки или создавать новый экземпляр объекта этого таблицы
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;' – AhmadWabbi
Создайте класс с именем Table. Затем пусть Table1,2 и 3 реализуют этот. –