在 Eclipse Neon 中,如果我编写这段 Java 代码:
Stream<Object> stream = Stream.builder().build();
我没有收到泄漏警告,但是如果我实现 Stream
,例如
public class MyStream<T> implements Stream<T> {
// implementation
}
和我写类似的代码
Stream<Object> stream = new MyStream<>();
我收到一个 Resource leak: 'stream' is never closed
警告。这仅在 Eclipse 中发生,而使用 javac
编译不会发出任何警告。
注意我不是在寻找有关如何关闭流等的答案,而是在寻找解释同一界面的这种不同行为的原因的答案。
最佳答案
Eclipse 有一个不需要清理的类型白名单,因为它们实际上并不引用系统资源。此处列出了核心 Java 类型,但您的自定义类型没有。参见 the help获取更多信息。
关于java - 为什么 Eclipse 不显示流的泄漏警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42935479/