Java에서 Can Only Iterate Over an Array 또는 Instance of Java.Lang.Iterable 오류 해결
-
배열 또는
java.lang.iterable
의 인스턴스에 대해서만 반복할 수 있음 -
Iterator()
를 사용하여Can Only Iterate Over an Array or an Instance of java.lang.iterable
오류 해결
Java 오류 Can only iterate over an array or an instance of java.lang.iterable
에 대해 알아봅니다. 이 오류가 발생하는 이유와 해결 방법을 살펴보겠습니다.
그럼 더 이상 지체하지 않고 바로 들어가 보겠습니다.
배열 또는 java.lang.iterable
의 인스턴스에 대해서만 반복할 수 있음
이 오류는 컴파일 시간 오류이며 그대로입니다. 배열 또는 인스턴스의 반복에 문제가 있을 때 발생합니다.
프로그래밍을 하는 동안 사용자는 스스로 일을 더 쉽게 만들려고 노력하고 그렇게 하는 동안 사용자는 루프를 사용합니다. 그러나 루프를 사용하는 것이 항상 정답은 아닙니다.
can only iterate over an array or an instance of java.lang.iterable
오류는 사용자가 배열이나 인스턴스에서 루프를 사용하는 것을 중지한다는 의미는 아닙니다. 조건을 보완하지 않는 루프가 사용됨을 의미합니다(예: for
또는 foreach
루프).
Iterator()
를 사용하여 Can Only Iterate Over an Array or an Instance of java.lang.iterable
오류 해결
루프의 경우 foreach
루프를 사용하는 경우 때때로 foreach
로 인해 이 오류가 발생할 수 있으므로 반복을 명시적으로 입력해야 합니다. Iterator
를 사용하여 이를 수행할 수 있습니다.
또 다른 방법은 간단한 for
또는 while
루프를 사용하는 것입니다.
다음은 while
루프가 있는 Iterator
를 사용하여 배열을 명시적으로 반복하는 간단한 예입니다. 여기서는 ArrayList
를 사용하여 Iterator()
를 시연합니다.
여기서는 Iterator()
가 ArrayList
클래스의 메서드이기 때문에 ArrayList
가 사용됩니다.
여기서 while
루프는 일을 더 쉽게 하기 위해 사용됩니다. 예를 들어 for
및 foreach
와 같은 다른 루프를 사용하는 동안 Iterator()
메서드가 올바르게 작동하지 않기 때문입니다.
Iterator()
는 수집 방법의 일부이므로 while
루프와 같은 특정 루프에서 제대로 작동합니다.
암호:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
List<Integer> Num = new ArrayList<>(); // ArrayList is used here
Num.add(1);
Num.add(2);
Num.add(3);
Num.add(4);
Iterator<Integer> value = Num.iterator(); // Here is the use of Iterator()
while (value.hasNext()) // hasNext() is used to loop. It is a method of Iterator()
{
System.out.println(value.next());
}
}
}
출력:
1
2
3
4
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn