0

有两个班

头等舱是

 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
 import java.util.ArrayList;

 import java.util.Collections;

public class Hieracrhy  
{

    ArrayList<Tutor> Tutor_person=new ArrayList<Tutor>();
    public static void main(String[] args) 
    {
        Hieracrhy obj=new Hieracrhy();
        obj.start();
    }

    public void start()
    {
        getDetails();
        System.out.println(Tutor_person);
    }

    //Function to read the songs from the file
    void getDetails()
    {
        try 
        {
            File file=new File("SongsList.txt");//Represents a file
            FileReader fileReader=new FileReader(file);//FileReader connects to a text file
            BufferedReader reader=new BufferedReader(fileReader);//For Efficient reading of file

            // We use String variable to hold each line when the line is read one-by-one
            String line=null;

            //Read a line of the string and assign it to a string if it is not null just  doo the func
            while((line=reader.readLine())!= null)
            {
                addDetails(line);
            }
        } 
        catch (Exception e) 
        {
            e.printStackTrace();
        }
    }
    void addDetails(String lineToParse)
    {
        String[] tokens=lineToParse.split("/");
        Tutor nextPerson=new Tutor(tokens[0]);
        Tutor_person.add(nextPerson);
    }
}

现在还有另一堂课

import java.util.ArrayList;


public class Tutor 

{

    int Tutor_id;
    String Tutor_name;
    String Tutor_place;
    int Tutor_age;

    public void Set_Things_for_Tutor(int Tutor_id,String Tutor_name,String Tutor_place,int Tutor_age)
    {
        this.Tutor_id=Tutor_id;
        this.Tutor_name=Tutor_name;
        this.Tutor_place=Tutor_place;
        this.Tutor_age=Tutor_age;

    }

    public int getuserid()
    {
        return Tutor_id;
    }
    public String getname()
    {
        return Tutor_name;
    }
    public String getdesignation()
    {
        return Tutor_place;
    }
    public int getage()
    {
        return Tutor_age;
    }
}

现在在文本文件中有输入

11/devrath/hassan/22 

但是当我运行完整的设置时,我得到了错误

构造函数导师(字符串)未定义

这个错误的原因是什么.....有人可以帮我解决这个问题吗?

谢谢

4

6 回答 6

4

构造函数导师(字符串)未定义

错误说明了一切。您的Tutor 类中没有接受字符串作为参数的构造函数。

public Tutor {
//instance vars

public Tutor(String s){
//assign s to appropriate member variable
}

}

顺便说一句,Tutor 课程的设计似乎很糟糕。你在你的构造函数中初始化你的实例成员(他们打算这样做)。您当前正在一个方法中初始化 Tutor 状态。我建议你在构造函数中初始化它们。

于 2013-03-15T10:58:27.890 回答
3

由于您没有使用“String”参数定义任何构造函数,JVM 无法找到它。

定义构造函数如下:

public Tutor(String name)
{
     //Do required initialization here
}
于 2013-03-15T11:02:12.623 回答
1

您调用的代码有一个参数构造函数,而被调用的代码(Tutor)类没有一个参数构造函数。

添加构造函数

public Tutor (String str)
{
     //do your initialization here about 'str' variable.
}
于 2013-03-15T11:30:33.437 回答
1

您的Tutor类没有接受 String 作为其参数的构造函数。如果你想在你的Tutor类中传递一个字符串,那么将它添加到你的代码中

public class Tutor{
  //Other member variables
  public Tutor(String yourString){
     //Do some initializations
  }

}
于 2013-03-15T11:05:27.423 回答
1

当您创建一个类的实例时,将调用构造函数

MyClass obj = new MyClass();

this 调用默认构造函数

public MyClass(){}

但是由于您没有创建任何参数化构造函数,因此 JVM 本身会为您创建它

但是如果你想将一些参数传递给构造函数

MyClass obj = new MyClass(someInteger,someString);

在这种情况下,JVM 不会创建任何默认构造函数,因为您已经创建了参数化构造函数

public MyCLass(int someInteger,String someString){}

在您的情况下,您没有创建任何构造函数,因此 JVM 仅创建默认构造函数

public MyClass(){}

所以你所拥有的只是一个非参数化的构造函数,但你试图访问的是一个参数化的构造函数

所以你所要做的就是在你正在创建其对象的类中创建一个参数化的构造函数......

在你的情况下

public Tutor(String string) {
    System.out.println("add the code to initialize the class parameters here");
}
于 2013-03-15T11:08:29.593 回答
1

好吧,我认为您必须在班级中重命名Set_Things_for_Tutor为。并删除字符串。TutorTutorvoid

于 2013-03-15T10:59:16.880 回答