2014-12-02 4 views
1

내가 문자열 var에 내 모델 클래스 (POJO)의 이름이 내가 다음과 같이 클래스 객체의 생성에 해결 될 수 없습니다클래스 객체 유형

String modelName = "ModelA"; 

Class modelNameClass = Class.forName(modelName);

MODELA는 이름입니다 모델 클래스의. 다음 줄에서는 일반 메서드 (getGenericRecord)가 ModelA의 데이터를 반환합니다. 내가 실수를하고있는 경우

modelNameClass listOfOfflineRecords = (modelNameClass) dbConn.getGenericRecord 

제발 올바른 : 다음을 수행하는 동안 는 지금은 'modelNameClass는 유형에 해결 될 수없는'오류가 발생하고있다.

미리 감사드립니다.

답변

0

modelNameClass

Class modelNameClass = Class.forName(modelName); 

는 표현을 캐스팅 선언 된 형태 Class의 변수 여기 초기화하고 변수 선언은 유형이 아닌 변수 이름의 이름을 기대하고있다. 다음

modelNameClass listOfOfflineRecords = (modelNameClass) dbConn.getGenericRecord 
//^wrong, should be a type name  ^wrong, should be a type name 

은 구문 상 올바르지 않습니다.

+0

구문이 올바르지 않습니다. 나는 단지 나의 기대를 설명하려고 노력했을 뿐이었다. 죄송합니다. 앞에서 말한 것처럼 getGenericRecord()는 모든 모델 클래스의 레코드를 반환 할 수 있습니다. ModelA, ModelB 등등. 좋은 점은 문자열 var에 해당 모델 클래스의 이름이 있다는 것입니다. 이제 다음 질문은 listOfOfflineRecords의 getGenericRecord() 또는 listOfOfflineRecords의 유형이어야하는 결과를 얻는 방법입니다. – LoveForDroid

+0

@love 컴파일시 알려진 일반적인 유형이 필요합니다. 어쩌면 공용 인터페이스 일 수도 있습니다. –

+0

generic 타입을 반환하는 대신 getGenericRecord() 메소드에서 resultSet의 Object를 반환합니다. 그런 다음이 객체를 원하는대로 모델에 캐스트 할 수 있습니다. 예 : 'Object TempX = dbConn.getGenericRecord();''ModelA expectedModel = (ModelA) TempX;' – LoveForDroid