2010-04-30 3 views
4

Мы хотели бы иметь тривиальные атрибуты свойств Java, используя синтаксис одной строки, поэтому они занимают гораздо меньше места и более читабельны (с точки зрения ' видя «набор аксессуаров быстро»). Но мы хотим обеспечить синтаксис многострочного метода для всего остального в нашей конфигурации checkstyle. Но я не уверен, как сделать это исключение для аксессуаров в конфигурации Checkstyle и подозревать, что это может быть невозможно.Разрешить синтаксис синтаксиса однопользовательского доступа (getter/setter) с Checkstyle

Таким образом, мы хотели бы наши аксессоров выглядеть примерно так:

public String getFoo() { return foo; } 
public void setFoo(String foo) { this.foo = foo; } 

[На самом деле мы бы скорее не тривиальные аксессоров на всех и вместо этого просто аннотировать частные переменные-члены с @Property или что-то и у нас есть аксессоры, поскольку для написания бесконечного кода get и set нет никакой реальной выгоды, но это общее разочарование в Java и, в сторону, насколько это необходимо.]

+1

Я думаю, вы видели проект Lombok, чтобы ответить на последний абзац ... –

+0

или весенний рой, если на то пошло –

+0

Я бы предпочел решить это с помощью автоматического форматирования кода. Тогда разработчикам не пришлось бы об этом думать. –

ответ

-1

Я бы рекомендовал использовать SuppressionCommentFilter для отключения проверки Checkstyle для блока кода.

Было бы тогда можно сделать следующее, чтобы отключить Checkstyle как следующее:

// CHECKSTYLE_OFF: ALL 
public String getFoo() { return foo; } 
public void setFoo(String foo) { this.foo = foo; } 
// CHECKSTYLE_ON: ALL 
+0

Недостатком является то, что если в какой-то день один из аксессуаров станет нетривиальным, контрольный стиль будет продолжать игнорировать его. –

0

Если вы хотите, чтобы решить эту проблему с помощью Checkstyle, то вы должны написать один или несколько пользовательских проверок. Ваша проверка будет подклассом проверки, которую вы изменяете. Затем, для всех затронутых проверок, вы должны ввести свою собственную подклассифицированную проверку в конфигурацию checkstyle (и удалить исходную).

Возможно, вы можете использовать код JavadocMethodCheck, который уже обнаруживает тривиальные аксессоры. Это звучит как много работы, но это не так много кода, потому что модификация, которую вы делаете в своем подклассе, всегда одна и та же, и поэтому может быть помещена в вспомогательный класс.

Я честно не считаю, что Checkstyle может сделать это из коробки, извините!