2014-07-12 5 views
2

인터페이스의 기본 방법에 대한 수정을 재정렬 내가 JDK 8에 프로젝트를 지금까지 가지고있는 유일한 문제가있는 것은이가 일어나고소나 규칙 - 난 그냥 수중 음파 탐지기를 사용하기 시작

Reorder the modifiers to comply with the Java Language Specification. 

default boolean isValid([params here]) { 
    /*method body here*/ 
} 

같은 인터페이스의 기본 방법은,이 정말 사소한 문제가 있음을 알고 있지만, 나는 어떤 규칙을 사용하지 않도록하고 싶지 않아, 그래서 당신은 그것을 어떻게 수정합니까?

대단히 감사합니다!

p.s. Google에서 아무 것도 찾지 못했습니다.이 규칙의 의미를 알고 있습니다 (설명을 읽었습니다).하지만 기본 키워드를 처리하는 방법을 알 수 없습니다.

업데이트 : 그것은 벌레처럼 보이는, 내가 https://jira.codehaus.org/browse/SONARJAVA-590 업데이트 2, 여기를보고 : 이미 고정 된 것과 2.4 버전에서 사용할 수 있습니다 보인다.

+0

어떤 버전의 음파 탐지기를 사용하고 있습니까? Java 8을 지원합니까? – Eran

+0

Java Plug-in 2.3에서 Sonar 4.3.2를 사용하고 있습니다. 나는 또한 같은 버전 인 Sonar 2.3 용 Maven 플러그인을 사용하여 커버리지를 돌리고있다. 그렇습니다. Java 8이 지원됩니다. –

+0

당신의 말에도 불구하고, 나는 Java 8을 지원하지 않는 버전을 다루고 있을지도 모른다고 생각합니다. 그렇지 않으면, 이것은 버그 일뿐만 아니라 완전히 말도 안되는 것입니다. [Java 언어 사양] (http://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.4)에 수정 자 순서가 * 없습니다. 그들은 어떤 순서로도 발생할 수 있습니다. – EJP

답변

5

인터페이스의 메소드 선언 구문은 JLS, section 9.4에서 다룹니다.

간단히 말해서 메서드 한정자는 메서드의 반환 형식을 포함하는 메서드 헤더 앞에 와야합니다. 따라서 나는이 수중 음파 탐지기에서 버그가 수 생각합니다 귀하의 선언은 하나의 방법 수정 default을 가지고 있으며 반환 유형은 boolean 그래서

default boolean isValid(/*parameters*/) { /*body*/ } 

이외의이 선언의 다른 가능한 배열이 없습니다.

+0

답변 해 주셔서 감사합니다. 논리적 인 설명으로 받아 들일 것입니다. 나는 또한 버그를보고했다. 업데이트 된 질문을 참조하십시오. –

+0

@SilviuBurcea 위대한, 음파 탐지기 버그를 제출해 주셔서 감사합니다. –

2

안녕하십니까?

당신은 수표의 소스 코드를 살펴 가질 수

:

그리고이 규칙은 이후 업데이트되지되었을 때 default 수정을 선택하지 않은 것을 볼 수 있습니다 (작성 당시에 커밋 마지막으로 링크) ModifiersOrderCheck를 sonar-java-plugin에서 Java 8을 지원합니다.

실제로 버그이지만 Java 플러그인 프로젝트에서보고해야하며 Mojo의 음파 탐지기 플러그인에서는보고하지 않아야합니다. 나는 올바른 표를 만들었습니다 : https://jira.codehaus.org/browse/SONARJAVA-590 자유롭게 투표하십시오.

+0

나는 SONARJAVA 프로젝트에서 버그를 제출할 권한이 없습니다. 그 죄송합니다. –

+1

문제가 없습니다! 보고서가없는 것보다 나쁜 보고서가 더 좋음 :) – benzonico

관련 문제