<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>These are the non-final, not subclassable, public, non-enum classes, in packages with unqualified exports in java.base:</div></div></div></blockquote><div><br></div><div>Filed <a href="https://bugs.openjdk.org/browse/JDK-8344943">https://bugs.openjdk.org/browse/JDK-8344943</a> to to track this.</div><div><br></div><div>If we extend the search to identify classes with at-most package protected access, we find the following additional candidates for marking final:</div><div><br></div>java.net.InterfaceAddress (the sole constructor is invoked from native code only, could be made private)<br>java.lang.module.ModuleDescriptor (package protected constructor invoked via JavaLangModuleAccess could be made private)<br>java.lang.Package<br><div>java.io.OptionalDataException</div><div><br></div><div>None of the above have subclasses, so can be marked final.</div><div><br></div><div>Eirik.</div></div></div>