У меня есть класс действия, который имеет приблизительно 30 переменных. Getters и seters для этих полей испортили мой код и добавили ненужные строки. Есть ли способ отразить все поля private
и сделать их «видимыми» для Struts?Отражение в Struts 2
ответ
Звучит как неправильный подход ко мне.
Getters and setters довольно фундаментальны в концепции Java OO и инкапсуляции. Если вам не нравится , пишут геттеры и сеттеры либо используют фреймворк, как Lombok (http://projectlombok.org/index.html), либо выбирают другой язык, например Gradle.
Большинство - если не все - Java-код использует их, поэтому, возможно, ваше восприятие, что они испортили код, немного ошибочно. Хорошая среда IDE должна помочь вам справиться с этим.
О, и Reflection добавляет огромные эксплуатационные издержки и полностью не предназначен для короткого замыкания доступа к частным членам.
Вам не нужны геттеры и сеттеры для работы OGNL. Но не делайте этого.
Если ваша проблема связана с «накладными расходами» более крупного класса, тогда создайте объект, который инкапсулирует состояние представления и раскрывает только это. Вы также можете сделать это через интерфейс ModelDriven
; некоторые оговорки применяются.
Геттеры и сеттеры являются равными для курса на Java. Привыкай к этому. Используйте среду IDE, которая автоматически складывает простые методы getXxx
/setXxx
. Начните использовать шаблон презентатора, чтобы инкапсулировать состояние представления и использовать их в качестве слоя перевода между веб-сайтом и объектами бизнес-домена.
Мои объекты неизменяемы, и я думаю, что интерфейс ModelDriven не будет работать для меня. Но я мог бы написать объект DTO, будет ли это хорошим подходом? –
- 1. Отражение в быстром 2
- 2. Ошибка Struts 2 struts-default.xml
- 3. Struts 2 Без Struts тегов
- 4. Перенастройка Struts 1 в Struts 2
- 5. Миграция из Struts 1 в Struts 2
- 6. аннотаций в Struts 2
- 7. Сессия в Struts 2
- 8. Struts 2 в RAD
- 9. Struts 1 до Struts 2 :: JSP преобразования
- 10. Struts 2 + Maven + Struts 2 Поддержка плагинов для отдыха
- 11. Struts 2 - сравнение объектов
- 12. Struts 2 Выберите тег
- 13. Struts 2 - execAndWait
- 14. Struts 2 «если» тег
- 15. Использование Struts 2 Assynchronously
- 16. Значение переключателя Struts 2.?
- 17. Показатели экрана Struts 2
- 18. Struts 2 пример сейчас
- 19. Struts 2 проверка параметров
- 20. struts 2 token Interceptor
- 21. Struts 2 display image
- 22. Сетевое приложение Struts 2
- 23. struts 2 redirect java.lang.IllegalStateException
- 24. вычислить в тегах struts 2?
- 25. Ручка ActionForward в Struts 2
- 26. Функциональность DispatchAction в Struts 2?
- 27. Перемещение ActionRedirect в Struts 2
- 28. Пользовательский OgnlValueStack в Struts 2
- 29. Запуск петли в Struts 2
- 30. Загрузка файла в struts 2
Где вы хотите использовать эту функциональность? На презентационном уровне (экранах)? –
Да @Buhake Sindi. У Struts, похоже, есть доступ к переменным только через геттеры и сеттеры, но это не очень хорошая практика. –
@ VladMatvei Это * хорошая практика использования геттеров и сеттеров в Java Beans, но ваш вопрос является дополнительным порядковым +1. –