On Wed, 17 May 2023 21:22:15 GMT, Andy Goryachev <[email protected]> wrote:
>> John Hendrikx has updated the pull request incrementally with three
>> additional commits since the last revision:
>>
>> - Override hashCode with a comment explaining why
>> - Fix style issues
>> - Restore removed public method
>
> modules/javafx.graphics/src/main/java/javafx/css/Match.java line 54:
>
>> 52: final int specificity;
>> 53:
>> 54: Match(final Selector selector, Set<PseudoClass> pseudoClasses, int
>> idCount, int styleClassCount) {
>
> just curious: do we really need a 'final' for an effectively final argument?
`final` here will just warn you if you try to reassign the parameter. It was
present in the original code.
Reassigning locals and parameters should generally be avoided. For the first,
you can have your IDE generate a warning or error. For the second, I have the
habit of always assigning a variable when it is declared. In the rare cases
where this can't be done, the `final` keyword offers little benefit.
The keyword does not offer any further benefits on parameters and locals, and
it hasn't since Java added the concept of effectively final (in Java 8 I
think). Before this, you sometimes needed to add `final` so a local could be
referred to in anonymous subclasses.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1070#discussion_r1197105574