java – 如何用lambda写一个新的ListChangeListener()?
发布时间:2020-12-14 05:34:17 所属栏目:Java 来源:网络整理
导读:如何在 java8中用lambda编写一个新的ListChangeListener()? listItems.addListener(new ListChangeListenerItem() { @Override public void onChanged( javafx.collections.ListChangeListener.Change? extends Item c) { // TODO Auto-generated method st
如何在
java8中用lambda编写一个新的ListChangeListener()?
listItems.addListener(new ListChangeListener<Item>() { @Override public void onChanged( javafx.collections.ListChangeListener.Change<? extends Item> c) { // TODO Auto-generated method stub } }); 这是我试过的: listItems.addListener(c->{}); 但日食说:
列表被声明为: ObservableList<Item> listItems = FXCollections.observableArrayList(); 解决方法
由于ObservableList从Observable接口继承addListener(InvalidationListener),编译器无法确定要调用的版本.通过转换指定lambda的类型应该可以解决这个问题.
listItems.addListener((ListChangeListener)(c -> {/* ... */})); 您还可以明确指定c的类型: listItems.addListener((ListChangeListener.Change<? extends Item> c) -> {/* ... */}); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |