Java Scanner - 为什么我会收到此错误?

use*_*514 -1 java java.util.scanner

我不是java新手,但我无法弄清楚为什么我会收到此Scanner错误.代码编译很好,但我得到以下运行时错误

输入项目编号:java.util中java.util.Scanner.next(Scanner.java:1461)的java.util.Scanner.throwFor(Scanner.java:840)中的线程"main"java.util.InputMismatchException中的异常. Scanner.nextInt(Scanner.java:2091)位于TestInvoice.getValues的java.util.Scanner.nextInt(Scanner.java:2050)中(TestInvoice.java:3

import java.util.Scanner;


public class TestInvoice {


    public static void main(String [] args)
    {
        /* create objects */
        Invoice item1 = new Invoice();
        Invoice item2 = new Invoice();
        Invoice item3 = new Invoice();

        /* get values */
        getValues(item1);
        getValues(item2);
        getValues(item3);

        /* print objects */
        System.out.println(item1.toString() + "\n");
        System.out.println(item2.toString() + "\n");
        System.out.println(item3.toString() + "\n");


    }

    private static void getValues(Invoice invoice)
    {        
        int number;
        String name;
        int quantity;
        double price;

        /* get values from user */
        Scanner scanner = new Scanner("System.in");

        System.out.print("Enter item number: ");
        number = scanner.nextInt();

        System.out.print("Enter item name: ");
        name = scanner.next();

        System.out.print("Enter quantity: ");
        quantity = scanner.nextInt();

        System.out.print("Enter item price: ");
        price = scanner.nextDouble();

        System.out.println();

        /* set the values */
        invoice.setItemNumber(number);
        invoice.setItemName(name);
        invoice.setItemQuantity(quantity);
        invoice.setItemPrice(price);

    }
}
Run Code Online (Sandbox Code Playgroud)

ide*_*ide 12

也许改变

Scanner scanner = new Scanner("System.in");
Run Code Online (Sandbox Code Playgroud)

Scanner scanner = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)