两个值相同的构造函数获取错误[ANDROID]

两个值相同的构造函数获取错误[ANDROID],android,constructor,Android,Constructor,为什么我不能用同一个参数(String,String,int)设置两个构造函数?但在我的例子中,必须应用不同的值,例如A活动输入accNo、phoneNo和amount,B活动输入accNo、billNo、amount 在android studio中,它会提示错误: 账单(字符串、字符串、整数)已定义 不能有两个具有相同签名(或擦除)的构造函数。一种可能的解决方法是使用无参数构造函数&一种实例方法来完成您需要的工作: Bill bill = new Bill(); bill.method1(a

为什么我不能用同一个参数(String,String,int)设置两个构造函数?但在我的例子中,必须应用不同的值,例如A活动输入accNo、phoneNo和amount,B活动输入accNo、billNo、amount

在android studio中,它会提示错误:

账单(字符串、字符串、整数)已定义


不能有两个具有相同签名(或擦除)的构造函数。一种可能的解决方法是使用无参数构造函数&一种实例方法来完成您需要的工作:

Bill bill = new Bill();
bill.method1(acc_no, phone_no, amount);
bill.method2(acc_no, bill_no, amount);

public method1(String acc_no, String phone_no, int amount_) {
    this.acc_no = acc_no;
    this.phone_no = phone_no;
    this.amount_ = amount_;
}

public method2(String acc_no, String bill_no, int amount_) {
    this.acc_no = acc_no;
    this.bill_no = bill_no;
    this.amount_ = amount_;
}

不能有两个具有相同签名(或擦除)的构造函数。一种可能的解决方法是使用无参数构造函数&一种实例方法来完成您需要的工作:

Bill bill = new Bill();
bill.method1(acc_no, phone_no, amount);
bill.method2(acc_no, bill_no, amount);

public method1(String acc_no, String phone_no, int amount_) {
    this.acc_no = acc_no;
    this.phone_no = phone_no;
    this.amount_ = amount_;
}

public method2(String acc_no, String bill_no, int amount_) {
    this.acc_no = acc_no;
    this.bill_no = bill_no;
    this.amount_ = amount_;
}

好的,你不能有两个相同的构造函数,没有意义,但是在你的例子中,你可以交换参数

public Bill(String acc_no, String bill_no, int amount_) {


好的,你不能有两个相同的构造函数,没有意义,但是在你的例子中,你可以交换参数

public Bill(String acc_no, String bill_no, int amount_) {


在android中,不能设置相同类型的两个构造函数 但这比改变参数的顺序更重要

下面是您修改的类

public class Bill {
    String acc_no;
    String bill_no;
    String phone_no;
    int amount_;

    public Bill() {
    }

    public Bill(String acc_no, String bill_no, String phone_no, int amount_) {
        this.setAcc_no(acc_no);
        this.setBill_no(bill_no);
        this.setPhone_no(phone_no);
        this.setAmount_(amount_);
    }

    public Bill(String acc_no, String phone_no, int amount_) {
        this.acc_no = acc_no;
        this.phone_no = phone_no;
        this.amount_ = amount_;
    }

    public Bill(String acc_no, int amount_, String bill_no) {
        this.acc_no = acc_no;
        this.bill_no = bill_no;
        this.amount_ = amount_;
    }


    public Bill(String acc_no, int amount_) {
        this.setAcc_no(acc_no);
        this.setAmount_(amount_);
    }


    public String getAcc_no() {
        return acc_no;
    }

    public void setAcc_no(String acc_no) {
        this.acc_no = acc_no;
    }

    public String getBill_no() {
        return bill_no;
    }

    public void setBill_no(String bill_no) {
        this.bill_no = bill_no;
    }

    public String getPhone_no() {
        return phone_no;
    }

    public void setPhone_no(String phone_no) {
        this.phone_no = phone_no;
    }

    public int getAmount_() {
        return amount_;
    }

    public void setAmount_(int amount_) {
        this.amount_ = amount_;
    }
}

在android中,不能设置相同类型的两个构造函数 但这比改变参数的顺序更重要

下面是您修改的类

public class Bill {
    String acc_no;
    String bill_no;
    String phone_no;
    int amount_;

    public Bill() {
    }

    public Bill(String acc_no, String bill_no, String phone_no, int amount_) {
        this.setAcc_no(acc_no);
        this.setBill_no(bill_no);
        this.setPhone_no(phone_no);
        this.setAmount_(amount_);
    }

    public Bill(String acc_no, String phone_no, int amount_) {
        this.acc_no = acc_no;
        this.phone_no = phone_no;
        this.amount_ = amount_;
    }

    public Bill(String acc_no, int amount_, String bill_no) {
        this.acc_no = acc_no;
        this.bill_no = bill_no;
        this.amount_ = amount_;
    }


    public Bill(String acc_no, int amount_) {
        this.setAcc_no(acc_no);
        this.setAmount_(amount_);
    }


    public String getAcc_no() {
        return acc_no;
    }

    public void setAcc_no(String acc_no) {
        this.acc_no = acc_no;
    }

    public String getBill_no() {
        return bill_no;
    }

    public void setBill_no(String bill_no) {
        this.bill_no = bill_no;
    }

    public String getPhone_no() {
        return phone_no;
    }

    public void setPhone_no(String phone_no) {
        this.phone_no = phone_no;
    }

    public int getAmount_() {
        return amount_;
    }

    public void setAmount_(int amount_) {
        this.amount_ = amount_;
    }
}

在Java中,不能使用相同的名称、相同的返回类型和相同的参数定义这两个构造函数,因为它无法区分它们的用法,这会导致歧义

一个可能的解决方案是添加第四个参数来区分这两个构造函数。不过,您不必使用第四个参数

public Bill(String acc_no, String phone_no, int amount_) {
    this.acc_no = acc_no;
    this.phone_no = phone_no;
    this.amount_ = amount_;
}
public Bill(String acc_no, String bill_no, int amount_, int dummy) {
    this.acc_no = acc_no;
    this.bill_no = bill_no;
    this.amount_ = amount_;
    dummy = 0;
}

在Java中,不能使用相同的名称、相同的返回类型和相同的参数定义这两个构造函数,因为它无法区分它们的用法,这会导致歧义

一个可能的解决方案是添加第四个参数来区分这两个构造函数。不过,您不必使用第四个参数

public Bill(String acc_no, String phone_no, int amount_) {
    this.acc_no = acc_no;
    this.phone_no = phone_no;
    this.amount_ = amount_;
}
public Bill(String acc_no, String bill_no, int amount_, int dummy) {
    this.acc_no = acc_no;
    this.bill_no = bill_no;
    this.amount_ = amount_;
    dummy = 0;
}

它是构造函数和方法的基本规则。我们可以使用相同名称的不同参数创建,但不能使用相同名称的相同参数创建。这是构造函数和方法的基本规则。我们可以使用相同名称的不同参数创建,但不能使用相同名称的相同参数创建。如果我更改为公共账单(字符串acc\u no,int amount\u,字符串Bill\u no){它不会影响输入值?因为我必须将这些值存储到SQLite中,所以在插入数据时不会影响查询?不会,因为您只交换构造函数的参数。可能影响查询的参数类型保持不变,String和int。如果我改为public Bill(String acc_No,int amount_,String Bill_No){它不会影响输入值?因为我必须将这些值存储到SQLite中,所以在插入数据时不会影响查询?不会,因为您只交换构造函数的参数。可能影响查询的参数类型保持不变,String和int。