Java 自动关闭的实现是如何工作的?
我试图理解下面的代码片段。我知道,Java 自动关闭的实现是如何工作的?,java,Java,我试图理解下面的代码片段。我知道,AutoClosable接口定义了一个close()方法 protected AutoCloseable fooAction() { enableFooResources(); return () -> { disableFooResources() }; } return()->{}的构造是什么意思?它如何返回可自动关闭的对象 如果有人能指出语言结构的名称以便我查找,我将不胜感激。语法称为lambda表达式。
AutoClosable
接口定义了一个close()
方法
protected AutoCloseable fooAction() {
enableFooResources();
return () -> {
disableFooResources()
};
}
return()->{}
的构造是什么意思?它如何返回可自动关闭的对象
如果有人能指出语言结构的名称以便我查找,我将不胜感激。语法称为lambda表达式。它们基本上是只有一个方法的匿名类的替代品(尽管它们没有编译成匿名类)
您的代码类似于:
protected AutoCloseable fooAction() {
enableFooResources();
return new AutoCloseable() {
@Override
public void close() throws Exception {
SurroundingClass.this.disableResources();
}
}
}
这样做的目的很可能是为调用方提供一种方法来关闭fooAction
将要执行的任何资源
了解有关lambda的更多信息。语法称为lambda表达式。它们基本上是只有一个方法的匿名类的替代品(尽管它们没有编译成匿名类)
您的代码类似于:
protected AutoCloseable fooAction() {
enableFooResources();
return new AutoCloseable() {
@Override
public void close() throws Exception {
SurroundingClass.this.disableResources();
}
}
}
这样做的目的很可能是为调用方提供一种方法来关闭fooAction
将要执行的任何资源
了解有关lambdas的更多信息。您正在查看AutoCloseable的lambda实现您正在查看AutoCloseable的lambda实现