On Tue, 8 Sep 2020 12:04:16 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

> Please review a fix for issue where it was seen that several
> nested classes rely on default constructors as part of their public API.
> 
> It's to be noted that "A no-arg public constructor is generated by the 
> compiler for a class if it does not declare an
> explicit constructor. While convenient, this is inappropriate for many kinds 
> of formal classes, both because the
> constructor will have no javadoc and because the constructor may be 
> unintended."  For the JDK, classes intended to be
> used outside of the JDK, public classes in exported packages, should not rely 
> on default constructors.
> Proposed fix is to add explicit public no-arg constructors for public classes 
> and protected no-arg constructor for
> public abstract classes for javax.swing module (as one part of overalll 
> java.desktop change)
> CSR: https://bugs.openjdk.java.net/browse/JDK-8252908

src/java.desktop/share/classes/javax/swing/Box.java line 436:

> 434:          * Constructs a {@code AccessibleBox}.
> 435:          */
> 436:         public AccessibleBox() {}

Shouldn't this be a protected constructor?
"if the class is declared protected, then the default constructor is implicitly 
given the access modifier protected".

-------------

PR: https://git.openjdk.java.net/jdk/pull/72

Reply via email to