Unnecessary

Unnecessary 룰셋에는 불필요한 코드에 대한 규칙이 포함되어있습니다.

1. UnnecessaryConversionTemporary

프리미티브를 문자열로 변환시 불필요한 임시 객체를 피하시기 바랍니다.

1 .우선순위: Medium

2 .심각도: 경고

3 .예시

                public String convert(int x) {
                    String foo = new Integer(x).toString(); // 오브젝트 낭비

                    return Integer.toString(x);             // 권장
                }

2. UnnecessaryReturn

불필요한 리턴문은 사용하지 않습니다.

1 .우선순위: Medium

2 .심각도: 경고

3 .예시

                public class Foo {
                  public void bar() {
                    int x = 42;
                    return;
                  }
                }

3. UnnecessaryFinalModifier

클래스가 final 제어자(modifier)로 선언되었을 때엔 모든 메소드들 또한 자동적으로 final로 선언되므로 명시적으로 final이라고 선언할 필요가 없습니다.

1 .우선순위: Medium

2 .심각도: 경고

3 .예시

                public final class Foo {
                    // 클래스가 final 인 경우 method에 final 선언 불필요
                    private final void foo() {
                    }
                }

4. UselessOverridingMethod

오버라이딩된 메소드가 super를 호출, 즉 superclass에 정의된 똑같은 메소드를 호출합니다.

1 .우선순위: Medium

2 .심각도: 경고

3 .예시

                public void foo(String bar) {
                  super.foo(bar);      // overriding 불필요
                }

                public String foo() {
                    return super.foo();  // overriding 불필요
                }

                @Id
                public Long getId() {
                  return super.getId();  // ignoreAnnotations이 false라면, 기본으로 동작해야 하는 로직이 무엇인가?
                }

5. UnusedNullCheckInEquals

객체가 null인지 체크한 후엔, null인지 여부가 불확실한 객체의 equals() 메서드를 호출하기 보다는 확실한 객체의 equals() 메서드를 호출해야 합니다.

1 .우선순위: Medium

2 .심각도: 경고

3 .예시

                public class Test {

                  public String method1() { return "ok";}
                  public String method2() { return null;}

                  public void method(String a) {
                    String b;
                    // method1()의 결과 값이 null인지 불확실 하고
                    // a가 not null 이란것을 아는 경우
                    // a.equals(method1())이 더 나은 방식

                    if (a!=null && method1().equals(a)) { // 규칙 실행
                    // 로직
                    }

                    if (method1().equals(a) && a != null) { // 규칙 실행 안함
                    // 로직
                    }

                    if (a!=null && method1().equals(b)) { // 규칙 실행 안함
                    // 로직
                    }

                    if (a!=null && "LITERAL".equals(a)) { // 규칙 실행 안함
                    // 로직
                    }

                    if (a!=null && !a.equals("go")) { // 규칙 실행 안함
                    a=method2();
                    if (method1().equals(a)) {
                    // 로직
                    }
                  }
                }
                }

Copyright© Bankwareglobal All Rights Reserved.