问题标签 [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.
java - 在java中添加AutoCloseable重要吗?
AutoCloseable
在java中实现重要吗?
如果我创建一个实现AutoCloseable
扩展另一个不实现它的类的类是否有意义?
例如
java - 如何在单元测试中覆盖由弹簧关闭的可自动关闭 bean 的关闭方法
我有几个 Spring beans/components implementations AutoCloseable
,我希望 Spring Container 在应用程序上下文被销毁时关闭它们。
无论如何,我的代码覆盖工具在抱怨,因为close()
从它的角度来看,这些方法是“被测试发现的”。
我应该怎么办:
- 介绍一些琐碎的 close() 测试?
- 放手去接受他们会降低覆盖率
- 还有什么?
java - 使用后没有分配给变量的 PrintWriter 会关闭吗?
是
如同
那么 PrintWriter 会关闭吗?
java - 在 Line 界面中,我必须为所有实例调用 close() ,还是仅在 Line 打开时调用?
根据AutoCloseable
接口的定义,我
必须调用所有实例。
即我必须这样写。 close()
在java.sound.sampled.SourceDataLine
接口中,
或更常见的是,在java.sound.sampled.Line
接口中,
是否需要调用所有实例,
或者我必须仅在调用后close()
调用? close()
open()
如果官方文档明确说明我必须close
只当isOpened
,
我想这样写。但我找不到提及。
java - 使用 Closeable 和 AutoCloseable
我有这个代码:
如果我运行它,我将得到以下输出:
} m1 1 2 m1 2 0 close 2 空指针异常终于结束
我的问题是:是否有任何“算法”可以帮助我在运行前了解输出的外观?我认为在这种情况下,当我有可关闭(或可自动关闭的对象)时。
为了更清楚,我想到了一些事情: 1.当出现异常时,你有finally但没有catch,你的程序会找到第一个catch并调用它来解决这个异常。ETC
非常感谢!
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 接口的超类中的方法)?因此,当使用动态方法分派时,编译器可能会在这里感到困惑???
java - Java-如果相同的方法返回`FileInputStream`,你如何在finally块中关闭`FileInputStream`
Sonar
正在显示以下代码的错误,该错误属于阻止程序类型。它抱怨我没有关闭FileInputStream
,但我该怎么做?FileInputStream
是方法的返回类型,如果我在此处关闭,那么它从调用的地方将毫无用处。请让我知道 - 如果相同的方法返回,我该如何关闭FileInputStream
finally 块FileInputStream
?
这是代码:
java - Findbugs OBL_UNSATISFIED_OBLIGATION 在扩展 AutoClosable 基类的类的构造函数上
我正在尝试子类化一个实现AutoClosable
. 这是一个简短的例子:
但是,FindBugs (3.0.0) 抱怨 AutoClosableSub 的构造函数,显然是因为它调用 super 而不关闭它:
我知道我可以通过以下方式抑制这一点:
但是,我想知道:
- 这是 Findbugs 中的误报吗?
- 在这种情况下,除了压制,有没有办法让 Findbugs 开心?
- 我在做坏事吗?这是一个糟糕的模式还是什么?
java - Java“资源泄漏”警告不应该触发
我有一个名为的类JavaShellStream
,它扩展了接口Closeable
和Autocloseable
. 但是,当我使用该类并且不调用其close()
方法时,不会触发任何警告,表明存在资源泄漏。我有另一个类JavaShell
,它有一个exec(String cmd)
返回JavaShellStream
对象的方法。JavaShellStream
当我通过以下方式创建新对象时,不会触发资源泄漏警告:
为什么这里没有触发警告说存在资源泄漏,因为JavaShellStream jss
从未关闭?这里的答案说触发它所需要的只是实现 interface Closeable
,但是我的类实现了这两者Closeable
并且Autocloseable
在未关闭时不会触发任何警告。
hibernate - 什么版本的 dropwizard-hibernate 支持资源尝试?
我知道该功能从 Java 7 开始可用,我希望 dropwizard hibernate 的更高版本将提供一个实现该接口try with resources
的 Sessions 对象。autocloseable
我无法在任何版本的 dropwizard 的 javadocs 中看到这一点。如果确实支持,有没有办法找出版本?