gpt4 book ai didi

java - 物的生死解说

转载 作者:行者123 更新时间:2023-11-29 09:43:27 25 4
gpt4 key购买 nike

下面的代码在 Eclipse 上给我一个警告:“资源泄漏,输入永远不会关闭”:

代码:1

import java.util.Scanner;

public class Ex {
public void sum() {
Scanner input = new Scanner(System.in);
}
}

我发现在类级别声明 input 变量可以解决问题,警告消失了。

但是,这是解决此问题的正确方法吗?第二个代码和第三个代码有什么区别?代码 3 是否意味着我已经放弃了第一个对象?

代码:2

import java.util.Scanner;

public class Ex {
private Scanner input;

public void sum() {
input = new Scanner(System.in);
}
}

代码:3

import java.util.Scanner;

public class Ex {
private Scanner input = new Scanner(System.in);

public void sum() {
input = new Scanner(System.in);
}
}

最佳答案

  1. 但是,这是解决此问题的正确方法吗 - 不,不是...输入仍未关闭,只是 Eclipse 无法再检测到它...问题仍然存在...

也就是说,关闭标准输入 System.in 也不是一个好主意(据我所知,关闭 Scanner 对象也会关闭底层流) ...因此,即使有警告,也最好保留它...

  1. 是的,因为在代码 3 中您重新初始化了 input,所以您放弃了第一个对象。

关于java - 物的生死解说,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30681674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com