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