【发布时间】:2015-05-28 17:54:55
【问题描述】:
大家好,我是春季的初学者,我刚开始。 我收到一个错误
" 在类路径资源 [org/collection/ApplicationContext2.xml] 中创建名称为 'question' 的 bean 时出错:指定了 3 个构造函数参数,但在 bean 'question' 中找不到匹配的构造函数(提示:指定索引/类型/名称简单参数的参数以避免类型歧义)"
我有两个类,第一个是包含单个构造函数 Question 的 Question,第二个是 Answer
我正在尝试创建答案类的引用并插入到具有数组列表的问题类中
我看了一下,发现我需要指定类型。 我已经指定了它,但我仍然收到错误
谢谢..
Question.java
package org.collection;
import java.awt.List;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
public class Question {
private int id;
private String name;
private ArrayList<String> answers;
//private HashSet<String> answers1;
public Question()
{
//Default constructor
}
public Question(int id,String name,ArrayList<String> answers)
{
super();
this.id=id;
this.name=name;
this.answers=answers;
}
public void display()
{
System.out.println("Id :"+id+"\nName :"+name);
System.out.println("Answers are");
Iterator<String> itr= answers.iterator();
while(itr.hasNext())
{
System.out.println(itr.next());
}
/*System.out.println("----------picking up the answers from HashSet---------");
Iterator<String> itr1=answers1.iterator();
while(itr1.hasNext())
{
System.out.println(itr1.next());
}
System.out.println("-------reached-----------");*/
}
}
Answer.java
package org.collection;
public class Answer {
private int id;
private String name;
private String by;
public Answer() {
// TODO Auto-generated constructor stub
}
public Answer(int id,String name,String by)
{
super();
this.id=id;
this.name=name;
this.by=by;
}
public String toString()
{
return "ID :"+id+"\nName"+name+"\nBy :"+by;
}
}
ApplicationContext.xml2
<?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="ans1" class="org.collection.Answer">
<constructor-arg value="1" type="int"></constructor-arg>
<constructor-arg value="java is a progamming language hahahaha" type="java.lang.String"></constructor-arg>
<constructor-arg value ="varun" type="java.lang.String"> </constructor-arg>
</bean>
<bean id ="ans2" class="org.collection.Answer">
<constructor-arg value="2" type="int"></constructor-arg>
<constructor-arg value="java is a platfornm" type="java.lang.String"></constructor-arg>
<constructor-arg value ="Rahul" type="java.lang.String"></constructor-arg>
</bean>
<bean id="question" class= "org.collection.Question">
<constructor-arg value="111" type="int"></constructor-arg>
<constructor-arg value="What is java ?" type="java.lang.String"></constructor-arg>
<constructor-arg>
<list>
<ref bean="ans1"/>
<ref bean="ans2"/>
</list>
</constructor-arg>
</bean>
</beans>
【问题讨论】:
-
您遇到的错误是什么?
-
作为“Rahul”和“varun”的类型,您需要指定完全限定的类名 (java.lang.String) 而不是 String。
-
@KarthikPrasad 创建类路径资源 [org/collection/ApplicationContext2.xml] 中定义的名称为“问题”的 bean 时出错:指定了 3 个构造函数参数,但在 bean“问题”中找不到匹配的构造函数(提示:为简单参数指定索引/类型/名称参数以避免类型歧义)
-
@ᴳᵁᴵᴰᴼ 评论的一个补充,type="int" 应该被删除
-
Karthik 我把它改成了,但我仍然遇到同样的错误,请帮助我,似乎每件事都是正确的,但我仍然收到错误