Java 如何在运行时获取所有变量的输入?

Java 如何在运行时获取所有变量的输入?,java,arrays,Java,Arrays,我创建了两个文件,一个包含私有变量、getter和setter,另一个包含从用户获取输入并在控制台中显示输出 当我执行程序时,它运行没有错误,但当输入给定时,它从4个输入中取出3个 我无法获取第四个变量的输入 使用getter和setters文件我已经测试了您的程序,它确实打印了姓名、工资和年份,同时打印了地址的空行。原因是当您输入加入年份时,键入一些数字,然后按Enter键。按Enter键时,实际上输入了一个空行\n,这仍然是一个输入,它被用作地址字段。这就是为什么程序不等待您的地址行。如果使

我创建了两个文件,一个包含私有变量、getter和setter,另一个包含从用户获取输入并在控制台中显示输出

当我执行程序时,它运行没有错误,但当输入给定时,它从4个输入中取出3个

我无法获取第四个变量的输入


使用getter和setters文件我已经测试了您的程序,它确实打印了姓名、工资和年份,同时打印了地址的空行。原因是当您输入加入年份时,键入一些数字,然后按Enter键。按Enter键时,实际上输入了一个空行\n,这仍然是一个输入,它被用作地址字段。这就是为什么程序不等待您的地址行。如果使用调试器,您会注意到这一点。如果更改字符串输入\ u Address=s.nextLine;字符串输入_Address=s.next;然后运行你的程序,你就会明白我的意思。但是,我不建议将此作为解决方案

我建议您添加scanner.nextLine;读过《入会年》后。这样,程序将读取按Enter键生成的下一个空行。然后它将读取您的实际地址数据

System.out.println("Year of Join: ");
int input_YearJoin = scanner.nextInt();
e.setYearJoin(input_YearJoin);
System.out.println(e.getYearJoin());
scanner.nextLine();

你可以阅读这篇文章以了解更多信息:

试试.next而不是.nextLine

我也会把它改成名字

我更改了您的代码,使其正常工作:

public static void main(String[] args) {
        Employee e = new Employee();
        Scanner s = new Scanner(System.in); 
            
        System.out.println("Enter details: ");
        System.out.println("Name: ");
        String input_name = s.next(); //changed .nextLine() to .next()
        e.setName(input_name);
        System.out.println(e.getName());
        
        System.out.println("Salary: ");
        int input_salary = s.nextInt();
        e.setSalary(input_salary);
        System.out.println(e.getSalary());
        
        System.out.println("Year of Join: ");
        int input_YearJoin = s.nextInt();
        e.setYearJoin(input_YearJoin);
        System.out.println(e.getYearJoin());
        
        System.out.println("Address: ");
        String input_Address = s.next(); //changed .nextLine() to .next()
        e.setAddress(input_Address);
    }

希望这有帮助:

为什么要投否决票?