|
|
|
checkstyle и public final
|
|||
|---|---|---|---|
|
#18+
Добрый день! Checkstyle ругается на "public final" поля класса. По сути он против структур данных. Причём судя по доке выпилить это можно только вместе с контролем на просто public поля. Кто-нибудь пробовал копнуть глубже- на уровне патчанья исходников, или плагина-фильтра? Нет времени глубоко погружаться в это дело, но хочется избавиться от ненужного варнинга. -- Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 08:55:46 |
|
||
|
checkstyle и public final
|
|||
|---|---|---|---|
|
#18+
Правильно ругается, что нет так-то? По сути структуры данных в Java делаются как immutable Java bean. Зачем поля выставлять напрямую. Ни полиморфизма потом на них не сделать, ни логики к ним прикрутить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 11:41:13 |
|
||
|
checkstyle и public final
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПравильно ругается, что нет так-то? По сути структуры данных в Java делаются как immutable Java bean. Зачем поля выставлять напрямую. Ни полиморфизма потом на них не сделать, ни логики к ним прикрутить. Мне кажется, что это вопрос вкуса. Мне не нравятся лишние геттеры. Ну может и смирюсь :) Но интересно всё же узнать как можно обойти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 12:16:01 |
|
||
|
checkstyle и public final
|
|||
|---|---|---|---|
|
#18+
Alexey TominМне кажется, что это вопрос вкуса. Если вы сами себе небольшой стартап профессионалов высокого уровня. Если вы понимаете что такое Anemic Model и инкапсуляция а значит у вас никогда не будет кода вида Order.person.name, тогда ладно. Alexey TominМне не нравятся лишние геттеры. Мне тоже не нравится их наличие в классах. Но как без них дебажить, я ума не приложу. Breakpoint-ы на полях нормально работают? Alexey TominНо интересно всё же узнать как можно обойти. Дописать своё правило в checkstyle? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 12:36:04 |
|
||
|
checkstyle и public final
|
|||
|---|---|---|---|
|
#18+
BlazkowiczAlexey TominМне кажется, что это вопрос вкуса. Если вы сами себе небольшой стартап профессионалов высокого уровня. Если вы понимаете что такое Anemic Model и инкапсуляция а значит у вас никогда не будет кода вида Order.person.name, тогда ладно. Ещё раз- есть такой тип данных, как структура. Там нет ни одного метода, кроме конструктора, и все поля public final. Не понимаю, чем они так плохи, что checkstyle выдаёт _ошибку_ даже, а не предупреждение. BlazkowiczAlexey TominМне не нравятся лишние геттеры. Мне тоже не нравится их наличие в классах. Но как без них дебажить, я ума не приложу. Breakpoint-ы на полях нормально работают? Зачем дебажить доступ к полям структуры? Но брякпоинты на поля в eclipse точно работают (пробовал на изменение), а в IDEA пока не пробовал- не надо было. BlazkowiczAlexey TominНо интересно всё же узнать как можно обойти. Дописать своё правило в checkstyle? :) Новое правило, которое будет делать ту же проверку, кроме public final? Как-то через з..., мне кажется, решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 09:43:52 |
|
||
|
checkstyle и public final
|
|||
|---|---|---|---|
|
#18+
Alexey TominЕщё раз- есть такой тип данных, как структура. Не нужно C подобные практики тащить в Java. Я всё прекрасно понимаю. Но в Java не используются структуры в том виде в котором вы хотите. Зато используются Immutable Beans. Отсюда и подобные правила в check style. Alexey TominТам нет ни одного метода, кроме конструктора, и все поля public final. От того что вы 10 раз повторите, checkstyle не изменится. Alexey TominНе понимаю, чем они так плохи, что checkstyle выдаёт _ошибку_ даже, а не предупреждение. Тем что они выставляют наружу состояние объекта. В Java нет структур. Alexey TominЗачем дебажить доступ к полям структуры? Офигеть. Ну, как зачем? Нужно мне узнать кто её читает в определенный момент. Alexey TominНовое правило, которое будет делать ту же проверку, кроме public final? Как-то через з..., мне кажется, решение. У вас есть лучше? Ну, задайте publicMemberPattern в настройках правила и используйте специальное именование полей в вашей структуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 11:13:42 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=196&tid=2128057]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
221ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 513ms |

| 0 / 0 |
