从带有扫描器的Console读取数据的Java在扩展类中出错

时间:2015-08-07 07:41:34

标签: java

我有以下课程:

public class Human {
    private String firstName;
    private String lastName;

    public Human(){
        Scanner in = new Scanner(System.in);
        System.out.println("Please enter Firstname");
        setFirstName(in.nextLine());
        System.out.println("Please enter Lastname");
        setLastName(in.nextLine());
        in.close();
    }
}

并且

public class Customer extends Human{
    private long customerNumber;
    private String customerCompanyName;
    static long customerNumberCounter = 0;

    public Customer(){
        super();
        Scanner in = new Scanner(System.in);
        setCustomerNumber(customerNumberCounter);
        customerNumberCounter ++;
        System.out.println("Please enter Companyname");
        setCustomerCompanyName(in.nextLine());
        in.close();
    }
}

当我调用以下主要方法时:

public static void main(String[] args) {
    Customer aCustomer = new Customer();
    System.out.println(aCustomer.giveFullName());
}

程序抛出以下错误:

  

线程中的异常" main" java.util.NoSuchElementException:没有行   发现于java.util.Scanner.nextLine(未知来源)at   customers.Customer。(Customer.java:17)at   customers.Customer.main(Customer.java:22)

我不明白我做错了什么,因为我可以毫无问题地创建一个类人类对象,但是当我创建一个Customer时,在人类构造函数中输入LastName后会立即弹出错误。 / p>

我已经重命名了扫描仪等,但这并没有解决问题。

有人为此获得了解决方案吗?

1 个答案:

答案 0 :(得分:0)

在阅读下一篇文章之前,请关闭扫描仪。因此无法读取该行:

callDef