void (@NotNull T oldItem, @NotNull T newItem, int index) { // silently replace item List<T> items = getItems(); items.set(index == -1 ? ContainerUtil.indexOfIdentity(items, oldItem) : index, newItem); }