2015-01-13 2 views
1

Позвольте мне прояснить это, я совершенно новичок в Spring framework.Нет конструктора с тремя аргументами, определенными в классе?

У меня есть три класса файлов, теперь я получаю сообщение об ошибке beans.xml. Вы можете посмотреть мои коды.

Вот MyAddress.java:

package com.project; 

public class MyAddress { 
    private String city; 
    private String state; 
    private String address; 

    public void Address(String city, String state, String address){ 
     this.city=city; 
     this.state=state; 
     this.address=address; 
    } 

    public String toString(){ 
     return city+" "+state+" "+address; 
    } 
} 

Вот мой Employee.java

package com.project; 

public class Employee { 
    private int id; 
    private String name; 
    private MyAddress address; 

    public Employee(){ 
     System.out.print("Default constructor.."); 
    } 

    public void Employee(int id, String name, MyAddress address){ 
     this.id=id; 
     this.name=name; 
     this.address=address; 
    } 

    public void show(){ 
     System.out.println(id+" "+name); 
     System.out.println(address.toString()); 
    } 
} 

Вот мой MainProgram.java

package com.project; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

public class MainProgram { 
    public static void main(String[] args){ 

     ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml"); 

     Employee em=(Employee)ac.getBean("e"); 

     em.show(); 
    } 
} 

и, наконец, вот мой beans.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" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 

    <bean id="e" class="com.project.MyAddress"> 
     <constructor-arg value="USA" type="String"></constructor-arg> 
     <constructor-arg value="Delhi" type="String"></constructor-arg> 
     <constructor-arg value="Bangalore" type="String"></constructor-arg> 
    </bean> 

    <bean id="e2" class="com.project.Employee"> 
     <constructor-arg value="123" type="int"></constructor-arg> 
     <constructor-arg value="raj"></constructor-arg> 
     <constructor-arg> 
      <ref bean="e"/> 
     </constructor-arg> 
    </bean> 

</beans> 

Я получаю сообщение об ошибке в beans.xml файлов как No constructor with 3 arguments defined in class

Пожалуйста, помогите, что это значит?

Несомненно, помощь будет оценена!

+0

Там нет типа возврата для конструктора в Java, так 'государственный служащий (интермедиат ид, имя строки, MyAddress адрес) {' –

ответ

4

Этот

public void Address(String city, String state, String address) 

должен быть

public MyAddress(String city, String state, String address) 

Вы получили имя класса неправильно в конструкторе, а кроме того, конструкторы не имеют тип возвращаемого значения.

Вы подобную ошибку для Employee:

public void Employee(int id, String name, MyAddress address) 

должен быть

public Employee(int id, String name, MyAddress address) 
+0

да !! ты был прав!! что за глупые ошибки ...: p спасибо ...;) –

0

Класс адреса имеет конструктор по умолчанию. Omit void ключевое слово из метода.

0

Как определено here, «Класс содержит конструкторы, которые вызываются для создания объектов из класса копирку. Объявления конструктора похожи на метод деклараций, за исключением того, что они используют имя класса и не имеют возвращаемого типа»

0

в MyAddress классе вместо создания конструктора вы создали Address метод, меняющегося public void Address(...) в public MyAddress(...) сделают работу

Смежные вопросы