每当我编译代码时,都会出现以下错误:


  SalesPerson类中的构造函数SalesPerson不能应用于
  给定类型;错误:类Player中的构造器Player不能为
  适用于给定的类型;


但是它没有列出任何类型。有问题的代码是

修改DemoSalesperson应用程序,以使每个销售员具有从111到120的连续ID号,并且销售额从25,000美元到70,000美元不等,每个连续的销售员增加5,000美元。将文件另存为DemoSalesperson2.java。* /

SalesPerson类:

public class SalesPerson {

        // Data fields for Salesperson include an integer ID number and a double annual sales amount
    private int idNumber;

    private double salesAmount;

    //Methods include a constructor that requires values for both data fields, as well as get and set methods for each of the data fields.
    public SalesPerson(int idNum, double salesAmt) {

        idNumber = idNum;
        salesAmount = salesAmt;

    }

    public int getIdNumber() {

        return idNumber;
    }

    public void setIdNumber(int idNum) {

        idNumber = idNum;
    }

    public double getSalesAmount() {
        return salesAmount;
    }

    public void setSalesAmount(double salesAmt) {
        salesAmount = salesAmt;

    }
}


司机:

public class DemoSalesPerson2 {

    public static void main(String[] args) {

        SalesPerson s1 = new SalesPerson(111, 0);

        final int NUM_PERSON = 10;
        SalesPerson[] num = new SalesPerson[NUM_PERSON];
        for (int x = 1; x < num.length; x++) {
              // NUM_PERSON

            num[x] = new SalesPerson((111 + x + "|" + 25000 + 5000 * (x)));
            System.out.println(x + "    " + s1.getIdNumber() + " " + s1.getSalesAmount());

        }

    }
}

最佳答案

更改此内容:num[x] = new SalesPerson((111 + x + "|" + 25000 + 5000 * (x)));
对此:num[x] = new SalesPerson((111 + x), (25000 + 5000 * (x)));

您在这里SalesPerson s1 = new SalesPerson(111, 0);就拥有了它。

注意两个构造函数调用之间的区别。

正如Sssss所指出的,当您的方法需要两个int时,您将String作为构造函数的参数。

这里记下的代码尚未测试。但是应该让您指出正确的方向。

关于java - DemoSalesPerson2.java:15:错误:无法将类SalesPerson中的构造函数SalesPerson应用于给定类型;不能将其应用于给定类型。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33114385/

10-09 03:59