赞
踩
如果你是觉得图中的警告太多太烦了,才来到这里的,建议你看下去
先上解决方法:
在主方法中创建一个Scanner类对象,然后把这个Scanner类对象交给各个方法去调用,把Scanner类对象作为参数传递出去,在主方法中调用close()关闭。
其他所有类中不使用close()方法。
尽量全局使用一个scanner对象,在确定不再使用输入功能的时候只关闭一次scanner。
————————————————
版权声明:本文为CSDN博主「.长安忆.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_64423480/article/details/130444849
大概像代码那样操作:
- public class ForSale {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- String s = Shuru(sc);
- int day = Shuru2(sc)
- sc.close();
- }
-
- //输入产品生产日期
- public static String Shuru(Scanner sc)
-
- {
- System.out.println("请输入所需产品的生产日期(格式如2008-08-08):");
- String s = sc.next();
- return s;
- }
- //输入产品保质期
- public static String Shuru2(Scanner sc)
-
- {
- System.out.println("请输入所需产品的保质期:");
- String s = sc.next();
- return s;
- }
--------------------------------------------------------------------------------------------------------------------------------
我原本为了方便,直接将Scanner实例化对象放在了方法里
- public static String Shuru()
-
- {
-
- Scanner sc = new Scanner(System.in);
-
- System.out.println("请输入所需产品的生产日期(格式如2008-08-08):");
-
- String s = sc.next();
- sc.close;
-
- return s;
-
- }
但是当我下一个方法也需要输入时,例如
- public static String Shuru2()
-
- {
-
- Scanner sc = new Scanner(System.in);
-
- System.out.println("请输入所需产品的保质期:");
-
- String s = sc.next();
- sc.close;
-
- return s;
-
- }
最后在main里调用它们时,只有Shuru()起作用了,运行到Shuru2()时会报错,上CSDN查才发现
Scanner类的close()方法会关闭其绑定的输入流。一旦关闭 System.in 流时,后面的对象所用的 System.in 流就是关闭状态。需要注意的是,当调用close()方法时,如果流已经被关闭,再次调用close()方法将不会产生任何效果,也不会抛出异常。
也就是说,整个文件中,close()只能用一次,用了之后就再也不能输入了。
所以我在main之外的方法不再用close(),就能正常输入了,问题是一堆警告。
解决方法就是
在主方法中创建一个Scanner类对象,然后把这个Scanner类对象交给各个方法去调用,把Scanner类对象作为参数传递出去,在主方法中调用close()关闭。
其他所有类中不使用close()方法。
尽量全局使用一个scanner对象,在确定不再使用输入功能的时候只关闭一次scanner。
————————————————
版权声明:本文为CSDN博主「.长安忆.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_64423480/article/details/130444849
大概像代码那样操作:
- public class ForSale {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- String s = Shuru(sc);
- int day = Shuru2(sc)
- sc.close();
- }
-
- //输入产品生产日期
- public static String Shuru(Scanner sc)
-
- {
- System.out.println("请输入所需产品的生产日期(格式如2008-08-08):");
- String s = sc.next();
- return s;
- }
- //输入产品保质期
- public static String Shuru2(Scanner sc)
-
- {
- System.out.println("请输入所需产品的保质期:");
- String s = sc.next();
- return s;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。