黑马程序员技术交流社区
标题:
刚学习用eclipse,为什么我键盘录入的时候那个sc的对象老是有个警告提示?
[打印本页]
作者:
hmjava520
时间:
2015-12-15 20:59
标题:
刚学习用eclipse,为什么我键盘录入的时候那个sc的对象老是有个警告提示?
package cn.itcast_02;
import java.util.Scanner;
public class StringTest_01 {
public static void main(String[] args) {
// 定义用户名和密码。已存在的。
String username = "admin";
String password = "admin";
// 给三次机会,用循环改进,最好用for循环。
for (int x = 0; x < 3; x++) {
// x=0,1,2
// 键盘录入用户名和密码。
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String pwd = sc.nextLine();
// 比较用户名和密码。
if (name.equals(username) && pwd.equals(password)) {
// 如果都相同,则登录成功
System.out.println("登录成功");
break;
} else {
// 如果有一个不同,则登录失败
// 2,1,0
// 如果是第0次,应该换一种提示
if ((2 - x) == 0) {
System.out.println("帐号被锁定,请与班长联系");
} else {
System.out.println("登录失败,你还有" + (2 - x) + "次机会");
}
}
}
}
}
虽然没有影响我运行但看到一个警告在那里总觉得不舒服,怎么才能不出现警告呢?
Scanner sc = new Scanner(System.in); 每次用都有警告!Resource leak: 'sc' is never closed!
作者:
龙sama
时间:
2015-12-15 21:10
那个是io流没关闭的提示,但是scanner不用关闭
作者:
hmjava520
时间:
2015-12-15 21:52
龙sama 发表于 2015-12-15 21:10
那个是io流没关闭的提示,但是scanner不用关闭
难道没有关闭的办法吗?
作者:
hyl
时间:
2015-12-15 22:02
有强迫症。
作者:
river1205
时间:
2015-12-15 22:03
Scanner 必须不关,因为你在方法中,sc属于局部变量,所以会报警告 你可以ctrl+1按提示找一种解决办法
作者:
意念痴心灬戒贪
时间:
2015-12-15 22:17
把nextline()改成next(),就应该好了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2