Мне нужно дать 2 объекта в качестве параметра в конструкторе, но я изо всех сил пытаюсь найти правильный способ сделать это

public class Phone{

public String kind;
public String number;

    public Phone(String kind, String number) {
        this.kind = kind;
        this.number = number;
    }
}

public class ContactData{

public String eMail;

    Phone phone = new Phone("phone", "031234567");
    Phone cellphone = new Phone("cellphone", "0499209802");

    public ContactData(String eMail, Phone phone, Phone cellphone){
        this.eMail = eMail;
        this.phone = phone;
        this.cellphone = cellphone;
    }
}

Я пробовал много вещей, но я продолжаю получать эту ошибку

2 ответа

  1. Существует несоответствие типа между параметрами конструктора и тем, что вы фактически передаете:

    public ContactData(String eMail, Phone phone, Phone cellphone)
    

    Однако вы используете Stringобъект вместо Phone:

    new Contact("ab@abc.com","123","123");
    

    То, что вам действительно нужно пройти, это экземпляр Phone:

    new Contact("ab@abc.com",new Phone("phone", "031234567"),
                new Phone("phone", "031234567"));
    
  2. На рисунке вы пытаетесь объявить экземпляр ContactData с помощью конструктора с параметрами (String, String, String), но единственный конструктор, который у вас есть, принимает (String, Phone, Phone).

    Это можно исправить путем создания экземпляров телефона при объявлении экземпляра ContactData напрямую, как это:

    ContactData contactData1 = new ContactData("nelson@hotmail.be", new Phone("cellphone", "154789562"), new Phone("cellphone", "1234567890"))