Разрешить однострочный синтаксис средства доступа (получателя / установщика) с Checkstyle - PullRequest
4 голосов
/ 30 апреля 2010

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 27 октября 2012

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

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

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

0 голосов
/ 14 февраля 2011

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

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

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