Бесконечный цикл в итераторе - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь научиться внедрению конструктора с коллекциями.Класс "Мой вопрос", как показано ниже.

public class Question {  
private int id;  
private String name;  
private List<String> answers;  

public Question() {}  
public Question(int id, String name, List<String> answers) {  
    super();  
    this.id = id;  
    this.name = name;  
    this.answers = answers;  
}  

public void displayInfo(){  
    System.out.println(id+" "+name);  
    System.out.println("answers are:");  
    Iterator<String> itr=answers.iterator();  
    while(itr.hasNext()){  
        System.out.println(itr);  
    }  
}  

}  

Класс "Мой тест", как показано ниже.

public class Test {  
public static void main(String[] args) {  
    Resource r=new ClassPathResource("applicationContext.xml");  
    BeanFactory factory=new XmlBeanFactory(r);  

    Question q=(Question)factory.getBean("q");  
    q.displayInfo();  

}  
} 

Это мое приложениеContext.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans  
    xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:p="http://www.springframework.org/schema/p"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  

<bean id="q" class="DependencyInjection.Question">  
<constructor-arg value="111"></constructor-arg>  
<constructor-arg value="What is java?"></constructor-arg>  
<constructor-arg>  
<list>  
<value>Java is a programming language</value>  
<value>Java is a Platform</value>  
<value>Java is an Island of Indonasia</value>  
</list>  
</constructor-arg>  
</bean>  

</beans> 

.

java.util.AbstractList$Itr@15aaf0b3 java.util.AbstractList$Itr@15aaf0b3 java.util.AbstractList$Itr@15aaf0b3 java.util.AbstractList$Itb3$ Itr @ 15aaf0b3 java.util..util.AbstractList $ Itr @ 15aaf0b3 java.util.AbstractList$Itr@15aaf0b3 java.util.AbstractList$Itr@15aaf0b3

Это бесконечный цикл.Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 25 февраля 2019

Вы не продвигаете Iterator, поэтому ваш цикл никогда не заканчивается.

Измените:

while(itr.hasNext()){  
    System.out.println(itr);  
}

на:

while(itr.hasNext()){  
    System.out.println(itr.next());  
}
...