jjzjj

closeable

全部标签

android - 在附加的堆栈跟踪中获取了资源,但从未释放。有关避免资源泄漏的信息,请参阅 java.io.Closeable

我在logcat中收到此消息在附加的堆栈跟踪中获取了资源,但从未释放。有关避免资源泄漏的信息,请参阅java.io.Closeable。在哪里查找泄漏以及“请参阅java.io.Closeable”是什么意思 最佳答案 这意味着您打开了某些东西,但从未关闭它们。Closable有一个方法close,当你不再需要它时,你必须调用它来释放与组件关联的资源。要查找泄漏,您可以尝试MAT,我经常用它来查找内存泄漏(静态数据持有对Activity的引用等)。 关于android-在附加的堆栈跟踪中

java - Java中如何保证Closeable接口(interface)的close()方法的幂等性?

Closeable接口(interface)是在Java5中引入的,而AutoCloseable接口(interface)是在Java7中与try-with-resources语句一起出现的。Closeable扩展了(从Java7开始)Autocloseable接口(interface)。在OCA/OCPJavaSE7-ProgrammerI&IIStudyGuide这本书的第399页上说:Whathappendsifwecalltheclose()multipletime?Itdepends.ForclassesthatimplementAutoCloseable,theimplem

java - Java中如何保证Closeable接口(interface)的close()方法的幂等性?

Closeable接口(interface)是在Java5中引入的,而AutoCloseable接口(interface)是在Java7中与try-with-resources语句一起出现的。Closeable扩展了(从Java7开始)Autocloseable接口(interface)。在OCA/OCPJavaSE7-ProgrammerI&IIStudyGuide这本书的第399页上说:Whathappendsifwecalltheclose()multipletime?Itdepends.ForclassesthatimplementAutoCloseable,theimplem

java - 是否应该将 Closeable 用作 .NET 的 IDisposable 的 Java 等效项?

更新:正如@PaulGroke在下面指出的,Java7发生了变化:现在有AutoCloseable.与流无关并受新的try-with-resources支持构造。AutoCloseable是.NET的IDisposable接口(interface)的直接Java等效项。Java1.5中引入的Closeable接口(interface)与流紧密相关,甚至还有一个IOException的异常说明符。这表明它应该只用于流或其他与IO相关的Activity,而不是通用的清理逻辑。当然,close()方法的描述在流/IO上下文之外绝对没有意义:voidclose()throwsIOExcepti

java - 是否应该将 Closeable 用作 .NET 的 IDisposable 的 Java 等效项?

更新:正如@PaulGroke在下面指出的,Java7发生了变化:现在有AutoCloseable.与流无关并受新的try-with-resources支持构造。AutoCloseable是.NET的IDisposable接口(interface)的直接Java等效项。Java1.5中引入的Closeable接口(interface)与流紧密相关,甚至还有一个IOException的异常说明符。这表明它应该只用于流或其他与IO相关的Activity,而不是通用的清理逻辑。当然,close()方法的描述在流/IO上下文之外绝对没有意义:voidclose()throwsIOExcepti

java - 为什么 Socket 在运行时不是 instanceof Closeable?

在Android应用中,我将此代码添加到onCreate()Closeablesss=newSocket();if(!(sssinstanceofCloseable)){thrownewRuntimeException("Somethingunexpectedhappened");}进口是:importjava.io.Closeable;importjava.net.Socket;代码可以编译,但是我收到异常:E/AndroidRuntime(8293):java.lang.RuntimeException:Unabletostartactivity...:java.lang.Runt

properties - 在 Kotlin 中访问属性委托(delegate)

Kotlin具有委托(delegate)属性,这是一个非常好的特性。但有时get()和set()方法是不够的。假设我想懒惰地创建一个Closeable对象并稍后关闭它。以下是如何实现此类委托(delegate)属性的示例:funcloseableLazy(initializer:()->T)=CloseableLazyVal(initializer)classCloseableLazyVal(privatevalinitializer:()->T):ReadOnlyProperty{privatevarvalue:T?=nulloverridefunget(thisRef:Any?,d

properties - 在 Kotlin 中访问属性委托(delegate)

Kotlin具有委托(delegate)属性,这是一个非常好的特性。但有时get()和set()方法是不够的。假设我想懒惰地创建一个Closeable对象并稍后关闭它。以下是如何实现此类委托(delegate)属性的示例:funcloseableLazy(initializer:()->T)=CloseableLazyVal(initializer)classCloseableLazyVal(privatevalinitializer:()->T):ReadOnlyProperty{privatevarvalue:T?=nulloverridefunget(thisRef:Any?,d

java - 如何在 Java 中组合 Closeable 对象?

我正在尝试创建一个管理多个Closeable资源的Java类。C++解决方案简单明了,并且可以轻松扩展到更多资源:classcomposed_resource{resource_aa;resource_bb;resource_cc;composed_resource(intx):a(x),b(x),c(x){}~composed_resource(){}};我天真的Java解决方案:publicclassComposedResourceimplementsCloseable{privatefinalResourceAa;privatefinalResourceBb;privatefin

java - 为什么 AutoCloseable 是 Closeable 的基本接口(interface)(反之亦然)?

据我所知,Closeable接口(interface)是从Java1.5和AutoCloseable开始的。是在Java1.7中引入的。我想了解的是为什么CloseableextendsAutoCloseable而不是反之亦然?这样做是因为向后依赖(无法更改Closeable接口(interface)),即AutoCloseable需要比Closeable更广泛的异常吗?还是我的逻辑错了,应该是这样? 最佳答案 这样,所有实现Closeable的用户代码都会自动实现AutoCloseable,这允许他们自动受益于try-with-r