긴 매개변수 목록은 해당 매개변수들을 래핑하기 위한 새로운 구조가 필요하거나, 함수가 너무 많은 작업을 수행하고 있음을 나타내는 것일 수 있습니다.
규칙을 어긴 코드
매개변수의 최댓값이 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.