2015-09-01 3 views
3

Почему Checkstyle не распознает пустые строки после заявления import, но до объявления class как нарушение?Checkstyle EmptyLineSeparator не работает на нескольких пустых строках до отклонения класса

package b.pi.persistence.hibernate; 

import java.lang.String; 



// ^^^ much space! Why is the above not a violation of EmptyLineSeparator 
public class CheckstyleExample { 

    ... 
} 

со следующей проверки заявил:

<module name="EmptyLineSeparator"> 
    <property name="allowNoEmptyLineBetweenFields" value="true"/> 
    <property name="allowMultipleEmptyLines" value="false"/> 
</module> 

ответ

4

Это потому, что отсутствие тестирования и выпуска в коде.

Обычно эта проверка проверяет, существует ли не более одной пустой строки выше некоторых токенов. Он хорошо работает, когда есть несколько ненужных пробелов выше import или package. Когда проверка достигает class декларации также будет проверки строки выше, но ...

  • на линии EmptyLineSeparatorCheck.java#L214 следующих родственные получаются для class токена и это null, поскольку есть еще отметить, на тот же уровень, что и в этом классе файл
  • , потому что следующий родственный является null вся проверка пропускается на линии EmptyLineSeparatorCheck.java#L216

Эта ошибка была представлена ​​в checkstyle/checkstyle#2067 и надеемся исправить будет Выпущенный в Checkstyle 6.11.

 Смежные вопросы

  • Нет связанных вопросов^_^