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의 경우에 캐스팅 오류가 발생합니다. 어떻게 해결할 수 있습니까?
내가 안드로이드에 sugarORM을 사용하고안드로이드
에 sugarORM을 알고 나는 몇 가지 조건에 따라 네 개의 테이블 중 하나에서 모든 행을 선택할 필요가 어디 상황을 가지고 사람들을 위해 상세, 또는 다른 일을해야합니다. 이제
List<Table1> list = Table1.listAll(Table1.class);
or
Table1 t = new Table1();
, 나는 수신하고 텐트의 상태 코드를 기반으로, 내가 표 1, 표 2, 표 3 또는 표 4
수단을 사용할 필요가 예를 들어
는 나도 를 사용할 필요가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 캐스트 오류를 줄 것이다의 새로운 객체를 인스턴스화 할 필요가 어디에 내 코드 어디에서나 스위치 케이스를 사용하여, IS 시도 무엇
그래서이 유형의 문제에 대한 해결책은 무엇입니까?
왜 '인터페이스'를 사용할 수 없습니까? –
예. 인터페이스 'A'를 정의하고, 세 개의 클래스가'A'를 구현하고'c'를 다음과 같이'A'로 선언하도록하십시오 :'A c;' – AhmadWabbi
Table이라는 클래스를 생성하십시오. 그런 다음 Table1,2,3이이를 구현하도록하십시오. –