RFR: JDK-8298200 Clean up raw type warnings in javafx.beans.property.* and com.sun.javafx.property.* [v3]
John Hendrikx
jhendrikx at openjdk.org
Sun Dec 11 14:30:25 UTC 2022
On Sat, 10 Dec 2022 21:55:03 GMT, Nir Lisker <nlisker at openjdk.org> wrote:
>> John Hendrikx has updated the pull request incrementally with three additional commits since the last revision:
>>
>> - Adjusted ReadOnlyListProperty#equals to be a bit more modern Java
>> - Remove SuppressWarnings in ReadOnlyListProperty
>> - Use assignment in instanceof
>
> modules/javafx.base/src/main/java/javafx/beans/property/ReadOnlySetProperty.java line 117:
>
>> 115: @SuppressWarnings("unchecked")
>> 116: Set<E> c = (Set<E>) obj; // safe cast as elements are only referenced
>> 117:
>
> I suggest to change it similarly to list:
>
>
> if (obj == this) {
> return true;
> }
>
> if (!(obj instanceof Set<?> otherSet) || otherSet.size() != size()) {
> return false;
> }
> try {
> return containsAll(otherSet);
> } catch (ClassCastException | NullPointerException unused) {
> return false;
> }
>
>
> I find it odd that there is a need to catch these exceptions, but `AbstractSet` does so too.
>
> Same for the `Map` variant.
NPE is probably because some underlying sets will throw NPE even for operations like `contains(null)` (the immutable variants from `List.of` and `Set.of` are bad offenders in this area). CCE maybe for sets that use comparators internally.
I've adjusted it as you suggested, and same for map.
-------------
PR: https://git.openjdk.org/jfx/pull/969
More information about the openjfx-dev
mailing list