// inner list can be a normal ArrayList static NotifyingList notifyingList(L innerList, final Runnable onChange) { ret new NotifyingList(innerList) { void change() { onChange.run(); } }; } static NotifyingList notifyingList(Runnable onChange) { ret listWithNotify(onChange); } static NotifyingList notifyingList(fO onChange) { ret listWithNotify(onChange); }