Hi Alan,
On 7/24/2020 3:34 AM, Alan Bateman wrote:
On 24/07/2020 01:33, Joe Darcy wrote:
Hello,
Please review the replacement of default constructors in various
abstract classes in java.net with explicit constructors:
webrev: http://cr.openjdk.java.net/~darcy/8250244.0/
CSR: https://bugs.openjdk.java.net/browse/JDK-8250245
(This is part of a larger effort to remove default constructor usage
from the JDK in preparation for enabling a new lint warning.)
Could we use the opportunity to change some of these to be protected?
For some of these then I don't think there is any compatibility impact.
At least from a few minutes thinking, I don't see a meaningful
compatibility issue in replacing
1) a public constructor in an abstract class
with
2) a protected constructor in an abstract class
It is source compatible, subclasses would have access to the constructor
in either case, and should also be binary compatible as linkage
shouldn't be impacted (because subclasses would still have access to the
constructor).
That said, for this exercise I'd prefer to replace the implicit default
constructors with equivalent explicit ones, but would be open to future
refinements to make the constructors protected.
Thanks,
-Joe