gpt4 book ai didi

java - 消除 AutoCloseable 的麻烦

转载 作者:行者123 更新时间:2023-12-01 20:53:01 27 4
gpt4 key购买 nike

前面:我现在是一名 C# 人员,正在从事 Java 工作。其中一些挫折来自于我对 Java 的缺乏了解。

首先,有没有一种方法可以实现不需要检查Exception的“安全”AutoCloseable实现?如果我正在实现自己的类,并且不会从其 close 方法中抛出异常,那么我不明白为什么必须检查它。

其次,有没有办法简化 try 语句中的表达式,而我不关心返回的内容?例如,在 C# 中我可以这样做:

using (new Disposable()) 
{
// yay!
}

Java 似乎强制我将它分配给一个临时变量:

try (AutoCloseable iDontCare = getAutoCloseable()) {
// dont you dare use iDontCare
}

我希望我能将 Java 简化为

try (getAutoCloseable()) {
// yay!
}

最佳答案

C# 并不完全是 Java;这是您今后必须处理的问题之一。

First, is there a way to have a "safe" AutoCloseable implementation that does not require the Exception to be checked? If I'm implmementing my own class that won't throw from its close method, I don't see why I have to check it.

必须因为it's mandated by the interface.不仅如此,它还抛出一个已检查的异常,确实必须在某种程度上处理该异常。

如果您知道您的代码永远不会抛出任何类型的异常,您仍然可以将异常的抛出放在某种保证不被执行的位置 -阻止您实现的 close 方法内部。或者,实现您自己的接口(interface),该接口(interface)扩展 AutoCloseable 并覆盖 close抛出异常。

关于java - 消除 AutoCloseable 的麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42863946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com