Java编程Scanner用完到底要不要加 xxx.close(); 啊
我用eclipse编程时调用Scanner,最后不加xxx.close();会报错但是用netbeans编程调用Scanner,最后加了xxx.close();反而会出现...
我用eclipse编程时调用Scanner,最后不加xxx.close();会报错
但是用netbeans编程调用Scanner,最后加了xxx.close();反而会出现黄色感叹号。。。这是为啥 展开
但是用netbeans编程调用Scanner,最后加了xxx.close();反而会出现黄色感叹号。。。这是为啥 展开
展开全部
既然提供了close方法,就要关闭这个扫描器,已节约系统资源,如果不关闭重复使用,在大程序当中,很有可能会造成资源不足系统崩溃的情况,出现黄色的感叹号,有可能是因为Scanner=null造成的,如果Scanner是空的话,可以不用关闭,所以在关闭的时候,可以加入判定条件:
Scanner s = null;
if(s!=null)
{
s.close();//这个时候,判定条件判定s为空,就不会关闭,出现叹号可以暂时不用理会
}
追答
private static Scanner input;
public static void main(String[] args)
{
input = new Scanner(System.in);
int date = input.nextInt();
}
黄色感叹号有的时候是为了帮助你完善这段代码,比如说要把input定义成为全局的以便于使用,可以不用理会
2017-02-14
展开全部
如果是使用System.in的话,不必须,就像System.in/System.out不必须关闭一样
~~~~~~~~
~~~~~~~~
追问
可是我用eclipse的时候,不写一行xxx.close();就直接红色感叹号了。。。能麻烦说清楚点吗,我是新手,谢谢大神啦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询