Java에서 Can Only Iterate Over an Array 또는 Instance of Java.Lang.Iterable 오류 해결

Haider Ali 2023년10월12일
  1. 배열 또는 java.lang.iterable의 인스턴스에 대해서만 반복할 수 있음
  2. Iterator()를 사용하여 Can Only Iterate Over an Array or an Instance of java.lang.iterable 오류 해결
Java에서 Can Only Iterate Over an Array 또는 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 루프는 일을 더 쉽게 하기 위해 사용됩니다. 예를 들어 forforeach와 같은 다른 루프를 사용하는 동안 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 Ali
Haider Ali avatar Haider Ali avatar

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

관련 문장 - Java Error