Java 8에 default method
기능이 추가되면서, 상속된 필드나 자신이 갖고 있는 필드가 없는 추상 클래스들은 인터페이스로 전환이 가능해졌습니다.
하지만, 이 규칙은 클래스를 API로 사용하려는 라이브러리나 기타 애플리케이션에서는 적용되기 적절하지 않을 수 있습니다.
참고: 이 규칙은 프로젝트의 sonar.java.source의 값이 8보다 낮은 경우(java8) 검사하지 않습니다.
규칙을 어긴 코드
public abstract class Car {
public abstract void start(Environment c);
public void stop(Environment c) {
c.freeze(this);
}
}
규칙을 준수한 해결책
public interface Car {
public void start(Environment c);
public default void stop(Environment c) {
c.freeze(this);
}
}
If you like SONARKUBE, don’t forget to give me a star.