메소드는 너무 많은 매개변수를 가져서는 안됩니다.

 

긴 매개변수 목록은 해당 매개변수들을 래핑하기 위한 새로운 구조가 필요하거나, 함수가 너무 많은 작업을 수행하고 있음을 나타내는 것일 수 있습니다.

규칙을 어긴 코드

매개변수의 최댓값이 4인 경우:

public void doSomething(int param1, int param2, int param3, String param4, long param5) {
        ...
}

규칙을 준수한 해결책

public void doSomething(int param1, int param2, int param3, String param4) {
        ...
}

예외

아래의 어노테이션들이 달린 메소드들은 많은 매개 변수를 가질 수 있으며, 캡슐화가 가능합니다. 따라서 이러한 메소드는 무시되며, 스프링 컴포넌트를 나타내는 어노테이션(@org.springframework.stereotype.Component 과 같은)이 달린 클래스가 단일 생성자를 가지는 경우, 생성자는 @Autowired 어노테이션이 부착된 것으로 간주하며 룰에서 무시됩니다.

  • 스프링의 @RequestMapping (그리고 @GetRequest 와 같은 관련된 단축된 어노테이션들)
  • JAX-RS API 어노테이션들 (@javax.ws.rs.GET 과 같은)
  • @org.springframework.beans.factory.annotation.Autowired 과 같은 빈 생성자 주입 어노테이션
  • @javax.inject.Inject 과 같은 CDI 생성자 주입 어노테이션
  • @com.fasterxml.jackson.annotation.JsonCreator
  • Micronaut 의 어노테이션 (@io.micronaut.http.annotation.Get 과 같은)

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project