Как получить доступ к полям классов

206
15 июня 2018, 20:50

Помогите разобраться в этом сложном для меня моменте. У меня есть два класса сущностей User и Hotel, у них поля long id и геттеры. Пара классов UserDAO, HotelDAO которые наследуются от общего GeneralDAO<T> в нём метод public T save(T t). Логика у метода следующая, сохранять объект, если у него id равен 0, то есть if(t.getId() == 0) то сохраняю объект в базу данных. Объясните пожалуйста, как я могу получить доступ к полям классов User и Hotel,чтобы использовать их в GeneralDAO<T> ?

Answer 1

Сделать общий класс MyEntity с полем long id + геттеры/сеттеры.

Унаследовать свои классы User и Hotel от класса MyEntity.

GeneralDAO<T> перестроить на GeneralDAO<T extends MyEntity>

Приблизительная структура классов:

class MyEntity implements Serializable {
    private long id;
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
}
class GeneralDAO<T extends MyEntity> {
    public T save(T t) {
        if (t.getId() == 0) {
            //TODO: som
        }
        return t;
    }
}
class User extends MyEntity{
}
class Home extends MyEntity{
}
READ ALSO
Корректный деплой spring boot на tomcat

Корректный деплой spring boot на tomcat

Есть приложение Spring Boot, которое запускается и работает корректноНастроил его для генерации war-ника согласно документации Spring

199
Переключатель boolean

Переключатель boolean

Мой вопрос очень прост для программистов со стажемМне просто нужно, чтобы по клику менялось значение boolean с true на false и обратно

213
Не могу указать относительный путь к файлу, который лежит в соседнем каталоге

Не могу указать относительный путь к файлу, который лежит в соседнем каталоге

На хостинг-сервере (ОС Cloudlinux) в корневом каталоге есть 2 соседных каталога- public_html и imagesВ images есть файл alpha

201
Как разместить текст по центру? [закрыт]

Как разместить текст по центру? [закрыт]

У меня на сайте html есть текст, и я хочу чтобы он был по центру, как мне это сделать? Уже пытался найти варианты, но так и не вышло!

238