On Tue, 27 Jan 2026 15:45:38 GMT, Viktor Klang <[email protected]> wrote:

>> src/java.base/share/classes/java/util/EnumSet.java line 524:
>> 
>>> 522:      */
>>> 523:     @Override
>>> 524:     public final Spliterator<E> spliterator() {
>> 
>> Maybe keep this method non‑`final` so that specialised implementations may 
>> be provided by `SimpleEnumSet` or `JumboEnumSet` in the future without 
>> needing to remove the `final` modifier.
>> Suggestion:
>> 
>>     public Spliterator<E> spliterator() {
>
> On the contrary, I think adding `final` here serves as a good indicator to 
> anyone possibly wanting to override spliterator() that they need to consider 
> the behavior of the superclass' implementation. AS EnumSet is `sealed` there 
> is no risk to non-jdk code and dropping the `final`-modifier later is trivial.

Changing `final`ness of a public method on a **JDK**‑`sealed` hierarchy still 
requires a **CSR**, since it’s considered a part of the **JavaSE API** 
specification.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28696#discussion_r2851083060

Reply via email to