Java方法不会执行多次

标签 java methods method-call

<分区>

我试图让方法 printMethod 对 6 个不同的输入执行 6 次,但它需要一个输入,输出一次结果然后结束。我试过将方法调用定位在不同的位置,但似乎没有任何区别。有人可以告诉我我做错了什么吗?

 import java.util.Scanner;
 public class Lab_Week4_PrintTable_Part2 {
    public static void main(String[] args)   {

        printMethod();
        printMethod();
        printMethod();
        printMethod();
        printMethod();
        printMethod();

        }

        private static void printMethod() {
            Scanner data = new Scanner (System.in);
            String output = data.nextLine();
            System.out.println("---------------------");     
            System.out.println("|   |   |   |   |   |");
            System.out.println(output);
            System.out.println("|   |   |   |   |   |");     
            System.out.println("---------------------");
            data.close();
    }

     }

最佳答案

这是由于关闭了使用 System.in 打开的 Scanner

System.in 由 JVM 打开,如果您在关闭 Scanner 时强行关闭它,您会发现在接下来的时间里无法再次打开它程序。

如果您不想看到警告,只需删除 data.close() 行,并抑制 Scanner 的警告,您的程序就会按预期运行。

通常您不希望将来关闭正在使用 System.inScannerSystem.in 将被关闭无论如何都会自动进行,所以不用担心。

请注意,如果您使用 File 而不是 System.in 打开 Scanner,则应该关闭它。

关于Java方法不会执行多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58981135/

相关文章:

java - 根据点击次数, ImageView 不可见

java - MappedByteBuffer 滑动窗口

java - 无法使用java中另一个类的公共(public)方法

java - 找不到类的方法?

java - 如何使用通过 Class.forName(String) 获得的类的方法?

java - 使用 Java Collections/Map 以编程方式执行 SQL 查询

java - 是否可以在不使用反射的情况下获取.class文件(在java中)的信息

java - 获取从运行可运行对象的线程创建可运行对象的方法

function - 如何解释方法调用?

javascript - 为什么 JavaScript 的 `function.call` 必须显式调用?