On Tue, 16 Mar 2021 12:22:24 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

>> `@implnote` added
>
> It feels wrong with this `@implNote`.
> 
> Subclasses *must still override* the default implementation. Should this 
> statement be included in the regular spec text as it was before? 
> Implementation note could say, “The default implementation doesn't do 
> anything.”
> 
> Or alternatively, this change can be rejected at all, leaving the spec as it 
> is now.

> It feels wrong with this `@implNote`.
> 
> Subclasses _must still override_ the default implementation. Should this 
> statement be included in the regular spec text as it was before? 
> Implementation note could say, “The default implementation doesn't do 
> anything.”
> 
> Or alternatively, this change can be rejected at all, leaving the spec as it 
> is now.

To make it clearer, what I suggest is keeping the old text as it was and adding 
`@implNote` below like this:
    /**
     * Resets the UI property to a value from the current look and feel.
     * <code>JComponent</code> subclasses must override this method
     * like this:
     * <pre>
     *   public void updateUI() {
     *      setUI((SliderUI)UIManager.getUI(this);
     *   }
     *  </pre>
     * 
     * @implNote The default implementation of this method doesn't do anything.
     *
     * @see #setUI
     * @see UIManager#getLookAndFeel
     * @see UIManager#getUI
     */

This way, it's more *highlighted* that `JComponent` subclasses must override 
`updateUI` as shown for the correct behaviour. Then the implementation note 
will add the missing detail: The default implementation does nothing. So it's 
not necessary to call the super method from the overridden one.

What do you, @prsadhuk and @mrserb, think?

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

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

Reply via email to