Scala: Difference between revisions
Jump to navigation
Jump to search
Hoppinglife (talk | contribs) No edit summary |
Hoppinglife (talk | contribs) |
||
| Line 27: | Line 27: | ||
=== RAII and Resource Handling === | === RAII and Resource Handling === | ||
Java and Scala do not have deterministic destructors due to automatic garbage collection. Java has a | |||
<code>finalize()</code> method in <code>Object</code>, but introduced [https://stackoverflow.com/questions/56139760/why-is-the-finalize-method-deprecated-in-java-9 problems] and were deprecated. Java classes holding non-heap resources should provide a close method, as well as lean on [https://docs.oracle.com/javase/9/docs/api/java/lang/ref/Cleaner.html Cleaner] and [https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html Autoclosable] to implement safe resource release. | |||
For Scala, the best resource-management mechanism seems to be a library [http://jsuereth.com/scala-arm/index.html scala-arm]. | |||