Как переопределить методы интерфейса в сгенерированном классе таблицы базы данных?

Я использую GreenDao в своем проекте Android, и я успешно сгенерировал схему базы данных, но я застрял на одной проблеме. Мой сгенерированный класс должен реализовать интерфейс, который не связан с БД. В генераторе я использовал следующий метод:

myEntity.implementsInterface("com.my.app.myinterface");

и затем после генерации класс имеет аннотацию реализации этого интерфейса в своем заголовке, но, конечно, в коде нет методов Override. Я попытался поместить пакет с моим интерфейсом в проект генератора, но методы никогда не появляются автоматически. Должен ли я вставить их вручную в

// KEEP METHODS - put your custom methods here ... // KEEP METHODS END

раздел?

1 ответ

Согласно документации GreenDAO, вам не нужно писать какой-либо метод, потому что классы переопределяются при каждом запуске (это означает, что каждое изменение, которое вы делаете, стирается), если вам нужно собственное поведение, вы можете использовать Keep Sections:

Хранить разделы

Классы сущностей перезаписываются при каждом запуске генератора. Чтобы разрешить добавление пользовательского кода в ваши организации, у greenDAO есть разделы "keep". Чтобы включить их, используйте enableKeepSectionsByDefault() в схеме или setHasKeepSections(true) для выбранных объектов. После включения в объектах создаются три секции keep:

// KEEP INCLUDES - put your custom includes here
// KEEP INCLUDES END
...
// KEEP FIELDS - put your custom fields here
// KEEP FIELDS END
...
// KEEP METHODS - put your custom methods here
// KEEP METHODS END

Теперь вы можете поместить свой собственный код между KEEP […] и KEEP […] END. И не трогайте комментарии. Код внутри раздела keep сохраняется во время генерации кода. Рекомендуется сделать резервную копию или зафиксировать ваш код на случай, если что-то пойдет не так, как надо.

Также взгляните на этот связанный вопрос.

Другие вопросы по тегам