Что не так с вызываемым объектом в коде Java? - PullRequest
0 голосов
/ 23 марта 2019

Я создаю меню, используя код Java, и когда я создаю новый объект в основном классе, он показывает мне эти две ошибки:

переменная admin не была инициализирована

и

несовместимая строка не может быть преобразована в двойную.

Вот класс администратора:

public class Admin extends User {
    private String officNo;
    private String positon;

    public Admin(String username, String pass, String officeNo, String postion) {
        super(username, pass);
    }

    public void addProduct(Product p) {
        Store.products.add(p);
    }
}

Класс продукции:

public class Product {
    private String name;
    private String ID;
    private double price;
    private String seller;

    public Product(String name, String id, double price, String sell) {
    }
}

Основной класс:

public static void main(String[] args) {
    Admin admin;

    Scanner inter = new Scanner(System.in);
    System.out.println("Welcome to our Online Store\n\n if you are an admin enter 1 if user enter 2");
    int sw1 = inter.nextInt();
    switch(sw1) {
        case 1:
            System.out.println("choose one of the option below: \n"
                 + "(1) add a new product to the store\n" +
                   "(2) delete one of the products\n" +
                   "(3) update one of the product attributes\n" +
                   "(4) search if a certain product exits using its ID\n" +
                   "(5) show the list of products\n"+
                   "(6) exit" );

         int sw2 = inter.nextInt();
         switch(sw2) {
             case 1:
                System.out.println("Enter product name: " );
                String name=inter.next();
                System.out.println("Enter product ID: " );
                String id=inter.next();
                System.out.println("Enter product price: " );
                String price=inter.next();
                System.out.println("Enter product seller: " );
                String seller=inter.next();

               admin.addProduct(new Product(name,id,price,seller);
                break; 

Ошибка появляется в этой строке:

admin.addProduct(new Product(name,id,price,seller);

Пожалуйста, кто-нибудь может помочь?

1 Ответ

2 голосов
/ 23 марта 2019

Вы не инициализировали переменную admin.Как минимум, вам нужно инициализировать его так:

Admin admin = null; // or some other initial value

В вашем случае, хотя вам нужно будет фактически инициализировать его с ненулевым значением, или вы получите NullPointerException в строке, которую вывыделено.

Admin admin = new Admin();

Кроме того, вы читаете цену в виде строки и затем передаете ее в конструктор Product, который ожидает двойное значение.Вам нужно сначала преобразовать строку в двойную, а затем передать ее в конструктор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...