当前位置: 首页 > 知识库问答 >
问题:

Eclipse 4.2资源泄漏的分离关闭方法

令狐宜民
2023-03-14
    public static void test(){
    InputStream in = null;
try {
    in = new FileInputStream("A");
} catch (IOException e) {
    return;
}finally{
    close(in);
}
}

public static void close(Closeable closeable) {
if (closeable != null) {
    try {
        closeable.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}
    public static void test2(){
    InputStream in = null;
try {
    in = new FileInputStream("A");
} catch (IOException e) {
    return;
}finally{
    if (in != null) {
        try {
            in.close();
        } catch (IOException e) {
        e.printStackTrace()
        }
    }
}
}

共有1个答案

农鸿德
2023-03-14
  • 您应该看到了“潜在的资源泄漏...”警告,如果没有,请打开一个bug。
  • 这里的主要问题是编译器不知道什么是“close(..)”方法有。它可能关闭资源,也可能不关闭资源。(注意编译器不执行过程间分析)
  • 您可以选择忽略“潜在资源泄漏”警告。(“资源泄漏”警告保证是正确的,但“潜在的...”警告则不是)

有关资源泄漏分析的更多详细信息,请参见http://help.eclipse.org/juno/index.jsp?topic=%2forg.eclipse.jdt.doc.user%2ftask%2ftask-avroving_resource_leaks.htm&cp=1_3_9_1

编辑:关于“资源泄漏”与“潜在资源泄漏”的一个词

    null
 类似资料:
  • 我正在使用Eclipse,并执行下面的函数,碰巧我打开了一个扫描器,然后,最后我关闭了它,但Eclipse一直说它没有关闭“资源泄漏:'Scanner'没有关闭”。我可以用try with resources来完成,警告消失了,但我想知道为什么我在这里尝试的方式不起作用

  • 为什么Eclipse在下面的代码中给了我变暖的“资源泄漏:'in'从不关闭”?

  • 此代码导致资源泄漏: conin从未关闭 为什么会发生这种情况?我如何修复它?

  • 当我创建扫描仪时,似乎出现了这个错误。我试图通过搜索错误名称来解决这个问题,但到目前为止未能成功地让消息停止出现。 代码: 我得到错误的部分:

  • 我正在编写一个程序,希望控制台输出用户输入的数字的剩余部分。但是,每次我编译代码时,控制台都会打印出来,我得到以下控制台错误: 我不确定控制台所说的“资源泄漏”是什么意思。我在几个不同的地方查找过它(包括API和其他堆栈溢出问题),我不确定为什么没有打印到控制台。我正在使用DrJava程序,以防有人想知道。 这里是我的代码供参考:

  • 问题内容: 在spring MVC应用程序中,我使用以下方法在服务类之一中初始化变量: UserLibrary是我在应用程序中使用的第三方工具。上面的代码为’context’变量生成警告。该警告如下所示: 我不明白警告。由于该应用程序是Spring MVC应用程序,因此在运行该应用程序时,我无法真正关闭/销毁上下文,因为我引用该服务。警告到底想告诉我什么? 问题答案: 由于应用程序上下文是一个(i