답변:
javadoc 에서 설명했듯이 , 목적은 특정 언어 구문Iterable
을 지원 하는 것입니다 .
이 인터페이스를 구현하면 객체가 "foreach"문의 대상이 될 수 있습니다
이와 같이,이 속하는 LANG 패키지 어느
Java 프로그래밍 언어 디자인에 필수적인 클래스를 제공합니다.
도면에서 다른 클래스 에 속하는 JCF 에, 그리고 따라서 util로 패키지 된
컬렉션 프레임 워크를 포함합니다 ...
Iterator
이상적으로 있어야 한다고 생각 합니다 . 물론, 이전 버전과의 호환성 을 위해 있어야 합니다 ( "foreach"구문이 언어에 중요한 역할을하기 훨씬 전에 JDK에 도입되었습니다). java.lang
Iterable
java.util
Iterable
on 의 의존성을 제외 Iterator
하고 java.lang
패키지는 일반적으로의 클래스에 의존하지 않습니다 java.util
.)
많은 것들이 Iterable 인터페이스를 구현 하거나 서브 인터페이스로 확장하기 때문입니다.
구현 클래스는 다음과 같습니다.
이것은 거대한 목록입니다. 그리고 모든 종류의 패키지를 다룹니다.
또한 순환 패키지 종속성 을 최소화하려고합니다 . 패키지 A의 클래스가 패키지 A의 클래스에 종속 된 패키지 B의 클래스에 종속되는 경우 순환 종속성이 있습니다. 그것들이 존재한다는 것이 항상 나쁘지는 않지만 다른 순환 종속성으로 이어지고 이는 나쁜 일이 될 수 있습니다. 자체적으로 나쁘지는 않지만 두 클래스 또는 패키지 사이의 커플 링이 너무 타이트하다는 것을 나타내는 디자인 냄새입니다. 기술 부채 누적의 시작입니다.
이에 대한 해결책은 "그렇습니다. Iterable 인터페이스는 Java 및 javax 구조 전체에서 다양한 클래스 및 패키지에 의존하는 것입니다. 언어 라이브러리의 가장 기본이되어야합니다-java .lang. "
그리고 그것이 당신이 그것을 찾을 수있는 곳입니다.
관련 독서 :