Как передать класс Dimensions в конструктор Courier в качестве параметра?

Задача состоит в том, чтобы передать класс Dimensions

public class Dimensions {

private final int width;
private final int height;
private final int length;

public Dimensions(int width, int height, int length) {
    this.width = width;
    this.height = height;
    this.length = length;
}

public int getWidth() {
    return width;
}

public Dimensions setWidth(int width) {
    return new Dimensions(width, height, length);
}

public int getHeight() {
    return height;
}

public Dimensions setHeight(int height) {
    return new Dimensions(width, height, length);
}

public int getLength() {
    return length;
}

public Dimensions setLength(int length) {
    return new Dimensions(width, height, length);
}

public String toString() {
    return "Габариты груза " +
            "ширина: " + width +
            ", высота: " + height +
            ", длина: " + length;
}

}

в конструктор Courier в качестве одного из параметров.

public class Courier {

private final int dimensions;
private final int weight;
private final String address;
private final boolean rotate;
private final String regNumber;
private final boolean fragile;

public Courier(int dimensions, int weight, String address, boolean rotate, String regNumber, boolean fragile) {
    this.dimensions = dimensions;
    this.weight = weight;
    this.address = address;
    this.rotate = rotate;
    this.regNumber = regNumber;
    this.fragile = fragile;
}

public int getDimensions() {
    return dimensions;
}

public Courier setDimensions(int dimensions) {
    return new Courier(dimensions, weight, address, rotate, regNumber, fragile);
}

public int getWeight() {
    return weight;
}

public Courier setWeight(int weight) {
    return  new Courier(dimensions, weight, address, rotate, regNumber, fragile);
}

public String getAddress() {
    return address;
}

public Courier setAddress(String address) {
    return  new Courier(dimensions, weight, address, rotate, regNumber, fragile);
}

public boolean isRotate() {
    return rotate;
}

public Courier setRotate(boolean rotate) {
    return  new Courier(dimensions, weight, address, rotate, regNumber, fragile);
}

public String getRegNumber() {
    return regNumber;
}

public Courier setRegNumber(String regNumber) {
    return  new Courier(dimensions, weight, address, rotate, regNumber, fragile);
}

public boolean isFragile() {
    return fragile;
}

public Courier setFragile(boolean fragile) {
    return  new Courier(dimensions, weight, address, rotate, regNumber, fragile);
}

}

При попытках использовать один класс в другом или просто нет результата или выдаётся ошибка. Все переменные по условию должны оставаться final.


Ответы (1 шт):

Автор решения: Fleckinger

В вашем классе Courier поле dimensions имеет тип int, если же вы хотите передавать туда объект Dimension измените тип поля на Dimension и соответственно измените конструктор.

→ Ссылка