RFR 9: 8138696 : java.lang.ref.Cleaner - an easy to use alternative to finalization
Roger Riggs
Roger.Riggs at Oracle.com
Wed Oct 14 14:03:36 UTC 2015
Hi Alan,
So any user of the Cleaner can take advantage of the mechanism, for
example in a different package or module.
For example, Netbeans.
Roger
On 10/14/2015 10:01 AM, Alan Bateman wrote:
> On 14/10/2015 14:54, Roger Riggs wrote:
>> Being able to subclass the XXXCleanable classes allows more efficient
>> implementation of the cleaners
>> in both size and performance. The subclass adds the necessary state
>> for the cleanup and implements
>> the performCleanup method. Only a single object is created (and
>> gc'd), reducing the size of headers
>> and cross references between separate objects. Only the
>> performCleanup method is overridable to
>> maintain the robustness of the Cleaner implementation.
>>
>> If the XXXCleaner classes are not subclassed, a separate object is
>> needed for the state and behavior.
>> Either that extra object is created by the binding if lambda is used,
>> or by the class needing the cleanup.
>> It is not a big cost but is proposed to optimize the design and
>> implementation.
>>
>> Peter's email [1] provided another description of the use case for
>> subclassing.
>>
>> I'm working on a webrev to show how the Cleaner would be used instead
>> of finalizers
>> and it will show use use of both lambdas and explicit cleanup classes.
> No issue with sub-classing for the implementation, it's just not clear
> why they need to be in the public API.
>
> -Alan
More information about the core-libs-dev
mailing list