试用期java_Java 7试用资源
試用期java
Java 7為完成使用后需要關閉的資源(例如文件,流,數據庫連接和套接字)提供了更好的資源管理。 這種語言構造稱為try-with-resources語句。 完成這項工作的機制稱為AutoCloseable接口。 Java 7資源類均實現此接口。 該接口的簽名如下所示:
它聲明了一個方法close(),該方法在try-with-resources語句管理的對象上自動調用。
盡管Java 7資源類實現了此接口,但是您使用的庫在很多時候都不會這樣做,因為庫沒有更新為使用AutoCloseable接口,或者項目無法簡單地更新為較新的版本。
在大多數情況下,這很容易解決。 只是將應該能夠參與try-with-resources語句的資源子類化。 以ITextRenderer(形成“飛碟”項目)為例。 使用ITextRenderer完成工作后,應調用finishPDF()方法。 通常,您將在finally塊中執行此操作。 通過創建一個從ITextRenderer擴展的新類并實現AutoCloseable接口,該類可以參與自動資源管理。 AutoCloseableITextRenderer如下所示:
public class AutoCloseableITextRenderer extends ITextRenderer implements AutoCloseable {@Overridepublic void close() {super.finishPDF();} }擴展原始類最有意義,因為子類是 ITextRenderer。 如果由于類是最終類而無法擴展,則可以使用composition。
這就是您將如何使用它:
try (final AutoCloseableITextRenderer iTextRenderer = new AutoCloseableITextRenderer()) {ByteArrayOutputStream out; // contains the data to be converted to PDF, not shown here.iTextRenderer.setDocumentFromString(new String(out.toByteArray()));iTextRenderer.layout();iTextRenderer.createPDF(pdfOutputStream);pdfOutputStream.flush();}就這樣。 請注意,我沒有從AutoCloseableITextRenderer中的close()方法引發異常。 AutoCloseable接口的Javadoc對此說明如下:
盡管聲明此接口方法引發{@code Exception},但強烈建議實現者聲明{@code close}方法的具體實現以引發更具體的異常,或者如果close操作不會失敗則根本不引發異常。
翻譯自: https://www.javacodegeeks.com/2013/07/java-7-try-with-resources.html
試用期java
總結
以上是生活随笔為你收集整理的试用期java_Java 7试用资源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进口肉类备案(肉制品备案)
- 下一篇: ipad访问电脑共享(ipad连接电脑共