Java 的 'defer' 是多少
What is the 'defer' equivalent for Java
这只是 Go 代码的一个简短示例:
package main
import "fmt"
func main() {
defer fmt.Println("world") //use of keyword 'defer'
fmt.Println("hello")
}
我在 Java 中找到 'defer' 的等价物。
我可以使用
代替'defer'
try {
//do something
} finally {
//code using defer
}
有没有不使用try/catch/finally的替代方案?
Java 7 有一个 try-with-resources statement.
The try-with-resources statement is a try statement that declares one or more resources. A resource is an object that must be closed after the program is finished with it. The try-with-resources statement ensures that each resource is closed at the end of the statement. Any object that implements java.lang.AutoCloseable, which includes all objects which implement java.io.Closeable, can be used as a resource.
The following example reads the first line from a file. It uses an
instance of BufferedReader to read data from the file. BufferedReader
is a resource that must be closed after the program is finished with
it:
static String readFirstLineFromFile(String path) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
In this example, the resource declared in the try-with-resources
statement is a BufferedReader. The declaration statement appears
within parentheses immediately after the try keyword. The class
BufferedReader, in Java SE 7 and later, implements the interface
java.lang.AutoCloseable. Because the BufferedReader instance is
declared in a try-with-resource statement, it will be closed
regardless of whether the try statement completes normally or abruptly
(as a result of the method BufferedReader.readLine throwing an
IOException).
在 java 7 及更高版本中,您可以使用 try-with-resource:
public static String readFirstLineFromFile(String path) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
当您退出尝试时,它会关闭资源
文档:link
这只是 Go 代码的一个简短示例:
package main
import "fmt"
func main() {
defer fmt.Println("world") //use of keyword 'defer'
fmt.Println("hello")
}
我在 Java 中找到 'defer' 的等价物。
我可以使用
代替'defer'try {
//do something
} finally {
//code using defer
}
有没有不使用try/catch/finally的替代方案?
Java 7 有一个 try-with-resources statement.
The try-with-resources statement is a try statement that declares one or more resources. A resource is an object that must be closed after the program is finished with it. The try-with-resources statement ensures that each resource is closed at the end of the statement. Any object that implements java.lang.AutoCloseable, which includes all objects which implement java.io.Closeable, can be used as a resource.
The following example reads the first line from a file. It uses an instance of BufferedReader to read data from the file. BufferedReader is a resource that must be closed after the program is finished with it:
static String readFirstLineFromFile(String path) throws IOException { try (BufferedReader br = new BufferedReader(new FileReader(path))) { return br.readLine(); } }
In this example, the resource declared in the try-with-resources statement is a BufferedReader. The declaration statement appears within parentheses immediately after the try keyword. The class BufferedReader, in Java SE 7 and later, implements the interface java.lang.AutoCloseable. Because the BufferedReader instance is declared in a try-with-resource statement, it will be closed regardless of whether the try statement completes normally or abruptly (as a result of the method BufferedReader.readLine throwing an IOException).
在 java 7 及更高版本中,您可以使用 try-with-resource:
public static String readFirstLineFromFile(String path) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
当您退出尝试时,它会关闭资源 文档:link