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