-
Sub-task
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
None
On one side, to use it as a try-with-resource, you need to declare it right in the try();
try(AutoCloseable handler = writeOnlyMap.listeners().onWrite(written -> System.out.printf("Written (via onWrite): %s%n", written.get()))) { Map<String, String> entries = new HashMap<>(); entries.put("key1", "value1"); entries.put("key2", "value2"); writeOnlyMap.evalMany(entries, (v, writeView) -> writeView.set(v)) .get(); // Wait for completable future }
So its usability is mostly designed for unit tests since listeners tend to be set and removed at a later stage. IOW, listeners are not generally a short-lived object.
The other aspect that is clunky to use is the fact that AutoCloseable's close() throws Exception, which again makes it ackward to use for example if lambdas.