黑马程序员技术交流社区

标题: 刚学习用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