问题标签 [autocloseable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4378 浏览

java - 在java中添加AutoCloseable重要吗?

AutoCloseable在java中实现重要吗?

如果我创建一个实现AutoCloseable扩展另一个不实现它的类的类是否有意义?

例如

0 投票
1 回答
1922 浏览

java - 如何在单元测试中覆盖由弹簧关闭的可自动关闭 bean 的关闭方法

我有几个 Spring beans/components implementations AutoCloseable,我希望 Spring Container 在应用程序上下文被销毁时关闭它们。

无论如何,我的代码覆盖工具在抱怨,因为close()从它的角度来看,这些方法是“被测试发现的”。

我应该怎么办:

  1. 介绍一些琐碎的 close() 测试?
  2. 放手去接受他们会降低覆盖率
  3. 还有什么?
0 投票
2 回答
182 浏览

java - 使用后没有分配给变量的 PrintWriter 会关闭吗?

如同

那么 PrintWriter 会关闭吗?

0 投票
2 回答
35 浏览

java - 在 Line 界面中,我必须为所有实例调用 close() ,还是仅在 Line 打开时调用?

根据AutoCloseable接口的定义,我
必须调用所有实例。 即我必须这样写。 close()

java.sound.sampled.SourceDataLine接口中,
或更常见的是,在java.sound.sampled.Line接口中,
是否需要调用所有实例, 或者我必须仅在调用后close()调用?
close() open()

如果官方文档明确说明我必须close只当isOpened
我想这样写。但我找不到提及。

0 投票
0 回答
34 浏览

java - 使用 Closeable 和 AutoCloseable

我有这个代码:

如果我运行它,我将得到以下输出:

} m1 1 2 m1 2 0 close 2 空指针异常终于结束

我的问题是:是否有任何“算法”可以帮助我在运行前了解输出的外观?我认为在这种情况下,当我有可关闭(或可自动关闭的对象)时。

为了更清楚,我想到了一些事情: 1.当出现异常时,你有finally但没有catch,你的程序会找到第一个catch并调用它来解决这个异常。ETC

非常感谢!

0 投票
0 回答
218 浏览

java - 具有多个边界的有界类型参数 RandomAccessFile 和 DataInputStream 抛出 java.lang.NoSuchMethodError: java.io.DataInput.close()V

我正在尝试扩展“接口的交集”。所以:我下面的例子是试图找到超接口RandomAccessFile (Implemented Interfaces: Closeable, DataInput, DataOutput, AutoCloseable )DataInputStream(Implemented Interfaces: Closeable, DataInput, AutoCloseable )因此我们至少在Closeable和上有一个交集DataInput(当然我可以与AutoCloseable):所以代码是这样的:

当我这样做时,它的效果很好:

但是当我这样做时:

它向我抛出了一个异常:

以下是所有代码:

我不会想到这个错误,因为我扩展了 Closeable 的相交接口。谁能帮我这个?

但是,让接口置换不会引发异常:

}

接口的交集是否可能不是等价关系(更准确地说,该操作数上的交集不是自反的)并且编译器将左侧接口作为返回值?

与此相关:DataInputStream 实现了 DataInput 并扩展了实现 Closeable 的抽象类 InputStream。RandomAccessFile 直接实现 DataInput 和 Closeable 因此 RandomAccessFile 必须实现方法 close() 而 DataInputStream 没有(它可以使用实现 Closeable 接口的超类中的方法)?因此,当使用动态方法分派时,编译器可能会在这里感到困惑???

0 投票
2 回答
1286 浏览

java - Java-如果相同的方法返回`FileInputStream`,你如何在finally块中关闭`FileInputStream`

Sonar正在显示以下代码的错误,该错误属于阻止程序类型。它抱怨我没有关闭FileInputStream,但我该怎么做?FileInputStream是方法的返回类型,如果我在此处关闭,那么它从调用的地方将毫无用处。请让我知道 - 如果相同的方法返回,我该如何关闭FileInputStreamfinally 块FileInputStream

这是代码:

0 投票
0 回答
359 浏览

java - Findbugs OBL_UNSATISFIED_OBLIGATION 在扩展 AutoClosable 基类的类的构造函数上

我正在尝试子类化一个实现AutoClosable. 这是一个简短的例子:

但是,FindBugs (3.0.0) 抱怨 AutoClosableSub 的构造函数,显然是因为它调用 super 而不关闭它:

我知道我可以通过以下方式抑制这一点:

但是,我想知道:

  1. 这是 Findbugs 中的误报吗?
  2. 在这种情况下,除了压制,有没有办法让 Findbugs 开心?
  3. 我在做坏事吗?这是一个糟糕的模式还是什么?
0 投票
1 回答
275 浏览

java - Java“资源泄漏”警告不应该触发

我有一个名为的类JavaShellStream,它扩展了接口CloseableAutocloseable. 但是,当我使用该类并且不调用其close()方法时,不会触发任何警告,表明存在资源泄漏。我有另一个类JavaShell,它有一个exec(String cmd)返回JavaShellStream对象的方法。JavaShellStream当我通过以下方式创建新对象时,不会触发资源泄漏警告:

为什么这里没有触发警告说存在资源泄漏,因为JavaShellStream jss从未关闭?这里的答案说触发它所需要的只是实现 interface Closeable,但是我的类实现了这两者Closeable并且Autocloseable在未关闭时不会触发任何警告。

0 投票
1 回答
47 浏览

hibernate - 什么版本的 dropwizard-hibernate 支持资源尝试?

我知道该功能从 Java 7 开始可用,我希望 dropwizard hibernate 的更高版本将提供一个实现该接口try with resources的 Sessions 对象。autocloseable

我无法在任何版本的 dropwizard 的 javadocs 中看到这一点。如果确实支持,有没有办法找出版本?