On Mon, 26 Dec 2022 14:32:52 GMT, John Hendrikx <jhendr...@openjdk.org> wrote:

>> modules/javafx.base/src/main/java/javafx/beans/binding/ListExpression.java 
>> line 238:
>> 
>>> 236:     public Iterator<E> iterator() {
>>> 237:         final ObservableList<E> list = get();
>>> 238:         return (list == null)? 
>>> ListExpression.<E>emptyList().iterator() : list.iterator();
>> 
>> You're using three slightly different ways of referring to the empty list:
>> * `ListExpression.<E>emptyList()`
>> * `emptyList()`
>> * `EMPTY_LIST`
>> 
>> What do you think about using the first option in all cases?
>
> I'm fine with that; the first two are equivalent, but in some cases I need to 
> add the type witness to avoid a warning and you can only do that by adding 
> the class name as well (ie. `<E>emptyList()` is not allowed, but 
> `ListExpression.<E>emptyList()` is.

Why not use `FXCollections.<E>emptyObservableList()` directly? If it's too 
long, a convenvenience method can be used:

    private static <E> ObservableList<E> emptyList() {
        return FXCollections.<E>emptyObservableList();
    }

No need to hold the instance here again in a way that makes it lose its type 
and do the same cast (and supress the warning) that `FXCollections` already 
does.

Same with the other collections.

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

PR: https://git.openjdk.org/jfx/pull/972

Reply via email to