[英]How should I replicate the functionality of C#'s 'using' statement in Java?
我正在將一些C#代碼轉換為Java,它包含using
語句。 我應該如何在Java中復制此功能? 我打算try
, catch
, finally
阻止,但我想我先和你們一起檢查。
Java中資源處理的標准習慣是:
final Resource resource = acquire();
try {
use(resource);
} finally {
resource.dispose();
}
常見的錯誤包括嘗試共享相同的try
語句,異常捕獲和后續操作使得與null
等混亂。
雖然Java語法很冗長,但Execute Around Idiom可以提取這樣的結構。
executeWith(new Handler() { public void use(Resource resource) {
...
}});
不要忘記空檢查! 也就是說
using(Reader r = new FileReader("c:\test")){
//some code here
}
應該翻譯成類似的東西
Reader r = null;
try{
//some code here
}
finally{
if(r != null){
r.close()
}
}
而且java中的大多數close()拋出異常,所以如果你希望你的代碼更像c#,請檢查DbUtils.closeQuietly
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.