迭代器中的无限循环

时间:2019-02-25 09:46:05

标签: java iterator

我正在尝试使用集合学习构造函数注入。我的问题类如下。

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);  
    }  
}  

}  

我的Test类别如下。

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();  

}  
} 

这是我的applicationContext.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$Itr@15aaf0b3   java.util.AbstractList$Itr@15aaf0b3   java.util.AbstractList$Itr@15aaf0b3   java.util.AbstractList$Itr@15aaf0b3   java.util.AbstractList$Itr@15aaf0b3   java.util.AbstractList$Itr@15aaf0b3   java.util.AbstractList$Itr@15aaf0b3   java.util.AbstractList$Itr@15aaf0b3   java.util.AbstractList$Itr@15aaf0b3   java.util.AbstractList$Itr@15aaf0b3

这是无限循环。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

您没有推进 public FileContentResult ViewAttachment(string attachmentName, int attachmentId) { if (ConfigurationManager.AppSettings["Environment"] != Constants.ProductionEnvironment || (User.IsInRole(Constants.Administrator) || User.IsInRole(Constants.Contributor) || User.IsInRole(Constants.Member))) { //Logic here return File(bytes, mimeType); } else { _logger.WriteInformation("Not authorized"); return File(bytes, mimeType); } } ,因此循环永远不会结束。

更改:

Iterator

收件人:

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