RFR: 8319844 : Text/TextFlow.hitTest() is incorrect in RTL orientation [v17]
John Hendrikx
jhendrikx at openjdk.org
Mon Mar 4 17:12:01 UTC 2024
On Mon, 4 Mar 2024 16:12:12 GMT, Andy Goryachev <angorya at openjdk.org> wrote:
>> Karthik P K has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Add unit test
>
> modules/javafx.graphics/src/main/java/com/sun/javafx/scene/text/TextLayout.java line 108:
>
>> 106: if (obj == null)
>> 107: return false;
>> 108: if (getClass() != obj.getClass())
>
> any reason why this code uses getClass() != obj.getClass() ?
>
> perhaps a better choice might be the usual pattern
>
> if(x == this) {
> return true;
> } else if(x instanceof Hit h) {
> return charIndex == h.charIndex && ...
> }
> return false;
There are long discussions about this, and not really worth going into. They both have their place. Generally, the `getClass` versions are easier to get right without violating the `equals` contract. `instanceof` can be used, to allow comparisons with (trivial) subtypes, but then you must make `equals` final. Anything fancier violates the equals contract.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1323#discussion_r1511498972
More information about the openjfx-dev
mailing list