Java找不到构造函数

时间:2015-04-02 22:58:19

标签: java

我觉得我以错误的方式处理这段代码。基本上我正在尝试从文本文件加载客户端信息。我麻烦的代码看起来像这样......

//load clients data from file
        file = new File(clientsOutputFile);
        sc = new Scanner(file);
        Client client;
        String givenName, familyName;
        String industry, projectName;
        // iterate for each line in venues file, one by one
        while(sc.hasNextLine()) {
            str = sc.nextLine();
            // split line by tab
            parts = str.split("\t");
            // check if all details of client are provided
            if(parts.length == 5) {
                phone = Integer.parseInt(parts[0]);
                givenName = parts[1];
                familyName = parts[2];
                industry = parts[3];
                projectName = parts[4];
                client = new Client(phone, givenName, familyName, industry, projectName);
                // add client to client's model
                clientMdl.addElement(client);
            }
        }
        sc.close();

我在编译时收到的错误是......

    Error: /Users/Desktop/Migration/BookingGUI.java:647: cannot find
symbol
symbol  : constructor Client(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)
location: class Client

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

您需要添加具有参数的构造函数。 Java将提供默认值但我总是发现它不可靠。

答案 1 :(得分:1)

您需要在public类中创建一个BookingGUI(或者如果Client在同一个包中的包私有)构造函数,它接受您尝试传递的所有参数。

例如:

class Client {
    // declare instance variables

    public Client(String phone, String givenName, String familyName,
                  String industry, String projectName) {
        // set instance variables
    }
}

答案 2 :(得分:1)

你能查找Client类是否真的有一个有四个参数的构造函数?这必须有这样的构造函数:

public class Client {
         ///fields
    public Client(String a, String b, String c, String d){
         //class initiation
    }
}

此问题的另一个原因可能是Client类具有带private修饰符的构造函数,因此,您无法实例化它。

答案 3 :(得分:0)

您的类应该有一个参数类型为

的构造函数

class Client {

public Client(int phone, String givenName, String familyName,
              String industry, String projectName) {
 }

}