Предположим, у меня есть внешняя библиотека с классом Foo. Я не могу изменить Foo, чтобы иметь частный конструктор, но у меня есть класс FooFactory, который я написал.checkstyle - запретить инициализацию объекта типа
Так что у меня есть FooFactory.getAFoo()
, но я хочу, чтобы контрольный стиль поймал любой new Foo()
в остальной части моего кода, чтобы заставить его использовать фабрику.
У меня есть это:
<module name="IllegalTokenText">
<property name="tokens" value="LITERAL_NEW"/>
<property name="format" value="Foo"/>
</module>
, но это не похоже, чтобы обнаружить new Foo()
.
Я могу использовать регулярное выражение, но это намного чище.
У меня была аналогичная проблема с предотвращением простирающейся класса:
<module name="IllegalTokenText">
<property name="tokens" value="EXTENDS_CLAUSE"/>
<property name="format" value="AndroidTestCase"/>
</module>
Ни один из этих Checkstyle модуля, кажется, делать что-либо вообще.
Что я делаю неправильно?