Рассчитать комплектующие ПК и их вес с использованием enum

Столкнулся с проблемой- не понимаю как посчитать комплектующие ПК и их вес. Информацию не выводит а пишет только ошибки. Код ниже:

public class Computer {
    private final String vendor;
    private final String name;
    private Processor processor;
    private Ram ram;
    private Hdd hdd;
    private Screen screen;
    private Keyboard keyboard;
    private double totalWeight;


    public Computer(String vendor, String name, Processor processor, Ram ram,
                    Hdd hdd, Screen screen, Keyboard keyboard, double totalWeight) {
        this.vendor = vendor;
        this.name = name;
        this.processor = processor;
        this.ram = ram;
        this.hdd = hdd;
        this.screen = screen;
        this.keyboard = keyboard;
        this.totalWeight = calculateTotalWeight();
    }

    public Computer setVendor(String vendor) {
        return new Computer(vendor, name, processor, ram,
                hdd,  screen, keyboard, totalWeight);
    }

    public String getVendor(){
        return vendor;
    }

    public Computer setName(String name) {
        return new Computer(vendor, name, processor, ram,
                hdd,  screen, keyboard, totalWeight);
    }

    public String getName(){
        return name;
    }

    public void WEIGHT(Processor processor, Ram ram,
                       Hdd hdd, Screen screen, Keyboard keyboard) {
        processor = Processor.WEIGHT;
        ram = Ram.WEIGHT;
        hdd = Hdd.WEIGHT;
        screen = Screen.WEIGHT;
        keyboard =Keyboard.WEIGHT;

    }

    public double calculateTotalWeight() {
        totalWeight = processor.WEIGHT() + ram.WEIGHT() +
                hdd.WEIGHT() + screen.WEIGHT() + keyboard.WEIGHT();
        return 0;
    }


    public double getTotalWeight(){
        return totalWeight;
    }

    public String toString(){return "PC manufacturer: " + vendor + "\n" + "PC name: " + name +
            "\n" + processor + "\n" + ram + "\n" + hdd + "\n" + screen + "\n" + keyboard +
            "Total weight " + totalWeight + "kg.";
    }
}

И класс Main:

public class Main {
    public static void main(String[] args) {
        Computer computer = new Computer("China", "VLAD PC",
                new Processor(1.9,4, "Intel", Processor.COREI7, 10),
                new Ram(4, Ram.SRAM, 4),
                new Hdd(500, Hdd.HDD, 500),
                new Screen(17, Screen.IPS, 10),
                new Keyboard(true, Keyboard.MECHANICAL, 1200),
                1);
        System.out.println(computer);
    }
}

Также enum:

public enum Hdd {
    MEMORYSIZE,
    HDD, SSD,
    WEIGHT
}

public enum Keyboard {
    MEMBRANE, MECHANICAL,
    BACKlIGHT,
    WEIGHT
}

public enum Processor {
    COREI7, COREI9,
    FREQUENCY,
    NUMBEROFCORES,
    MANUFACTURER,
    WEIGHT
}

public enum Ram {
    RAMAMOUNT,
    SRAM, DRAM,
    VOLUME,
    WEIGHT
}

public enum Screen {
    DIAGONAL,
    IPS,
    TN,
    VA,
    WEIGHT
}

А нужно понять как откорректировать код чтобы всё заработало.


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

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

проблема в `

new Processor(1.9,4, "Intel", Processor.COREI7, 10),
                new Ram(4, Ram.SRAM, 4),
                new Hdd(500, Hdd.HDD, 500),
                new Screen(17, Screen.IPS, 10),
                new Keyboard(true, Keyboard.MECHANICAL, 1200),

`

Попробуйте заменить enum"ы на классы с соответствующими полями, сейчас исходя из вашего примера вы пытаетесь создать экземпляр "enam'a"

→ Ссылка