Объект класса не может быть преобразован в тип

1

У меня есть имя моего модельного класса (POJO) в строке var, и я создаю его объект класса следующим образом:

String modelName = "ModelA";

Class modelNameclass= Class.forName(modelName );

Где ModelA - это название класса модели. В следующей строке общий метод (getGenericRecord) возвращает данные для ModelA. Теперь я получаю: "modelNameClass не может быть разрешен к типу", ошибка при выполнении следующего:

modelNameClass listOfOfflineRecords = (modelNameClass) dbConn.getGenericRecord

Пожалуйста, поправьте меня, если я ошибаюсь.

Заранее спасибо!!

Теги:
generics
reflection

1 ответ

0
Лучший ответ

modelNameClass - это переменная типа Class объявленная и инициализируемая здесь

Class modelNameClass = Class.forName(modelName );

Выраженное выражение и объявление переменной ожидают имя типа, а не имя переменной. Следующие

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

является синтаксически неправильным.

  • 0
    Я знал, что это синтаксически неверно. Я просто пытался объяснить свои ожидания. Извините, что сбил вас с толку. Как я уже сказал, getGenericRecord () может возвращать записи для любого класса модели, например ModelA, ModelB и т. Д. Хорошо, что у меня есть имя этого класса модели в строке var. Теперь следующий вопрос: как получить результаты getGenericRecord () в listOfOfflineRecords или каким должен быть тип listOfOfflineRecords?
  • 0
    @love Вам понадобится общий тип, известный во время компиляции. Может быть, общий интерфейс.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню