sim*_*des 14 java lambda listener changelistener java-8
如何在java8中用lambda编写新的ListChangeListener()?
listItems.addListener(new ListChangeListener<Item>() {
@Override
public void onChanged(
javafx.collections.ListChangeListener.Change<? extends Item> c) {
// TODO Auto-generated method stub
}
});
Run Code Online (Sandbox Code Playgroud)
这是我试过的:
listItems.addListener(c->{});
Run Code Online (Sandbox Code Playgroud)
但是eclipse说:
对于ObservableList类型,方法addListener(ListChangeListener)是不明确的.
列表声明为:
ObservableList<Item> listItems = FXCollections.observableArrayList();
Run Code Online (Sandbox Code Playgroud)
小智 31
由于ObservableList继承addListener(InvalidationListener)自Observable接口,编译器无法确定要调用的版本.通过强制转换指定lambda的类型应该解决这个问题.
listItems.addListener((ListChangeListener)(c -> {/* ... */}));
Run Code Online (Sandbox Code Playgroud)
您还可以明确指定以下类型c:
listItems.addListener((ListChangeListener.Change<? extends Item> c) -> {/* ... */});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16846 次 |
| 最近记录: |