Я работаю с кодовой Java, которые имеют строгие Checkstyle проверок, и он не любит следующее непреложное значение объекта:Как разрешить неизменяемые классы, когда включен модуль проверки подлинности VisibilityModifier?
public class Foo {
public final int bar;
public final String baz;
public Foo(int bar, String baz) {
this.bar = bar;
this.baz = baz;
}
}
Это происходит потому, что VisibilityModifier модуля переменных сил экземпляра быть private
и иметь добытчик.
Есть ли способ сделать Checkstyle сделать исключение для переменных экземпляра, которые
public final
?Если да, существует ли способ сделать это исключение применимым только к классам испытаний?
Имеет смысл, что члены 'final' могут быть общедоступными. Если бы я был вами, я бы попытался связаться с разработчиками Checkstyle и спросить их об этом, возможно, они изменят его в следующей версии или, по крайней мере, добавят свойство. – Dukeling
Не то, о чем вы просите, но вы можете добавить '// CHECKSTYLE_OFF: Видимость над каждым классом, чтобы получить Checkstyle, чтобы перестать жаловаться. Я не знаю настройки, которая условно применяет правило. – Grundlefleck
Я бы вообще утверждал, что вы этого не хотите. Даже когда поля являются окончательными, вы по-прежнему выставляете внутреннюю структуру вашего объекта, что навсегда ограничит ваши будущие варианты рефакторинга. Но это другое обсуждение. :-) –