Collection에 대한 반복은 Collection의 타입으로 수행되어야합니다.

 

해당 규칙은 ``Collection 항목에 대한 반복이 Collection` 타입의 상위 유형에서 수행되는 경우 문제를 제기합니다.

객체 또는 실제 객체와 Collections에 사이에 의존하는 것은 권장하지 않습니다. 언어에서 허용되는 동안, 해당 관행은 코드의 가독성을 떨어뜨리고 반복에서 올바른 유형을 사용하는 동안 항목을 더 명확하고 간단하게 작업할 수 있도록 Collection 항목이 메소드를 호출하도록 강제로 다운캐스트합니다.

규칙을 어긴 코드

public Collection<Person> getPersons() { ... }

for (Object item : getPersons()) { // 규칙을 어긴 코드
  Person person = (Person) item; // 규칙을 어긴 코드; "item" 항목을 사용하려면 올바른 타입으로 다룬캐스팅 하여야 합니다.
  person.getAdress();
}

규칙을 준수한 해결책

for (Person person : getPersons()) { // 규칙을 준수한 해결책
  person.getAddress() ;
}

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

원문으로 바로가기

Star This Project