java - 我如何将这个 lambda 函数变成一个简单的函数?
问题描述
我正在尝试理解 Java 中的 lambda 格式,并且可以真正使用一些帮助将这个函数转换为标准函数来看看它是如何工作的:
Callback<ListView<Contacts>, ListCell <Contacts>> factory = lv -> new ListCell<>() {
@Override
protected void updateItem(Contacts item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? "-" :( "[" + item.getContactID() + "] " + item.getContactName()));
}
};
解决方案
从创建匿名Callback
对象的代码开始:
Callback<ListView<Contacts>, ListCell<Contacts>> factory = new Callback<>() {
@Override
public ListCell<Contacts> call(ListView<Contacts> lv) {
}
};
->
然后将lambda 运算符的右侧粘贴为call()
' 方法体。唯一需要的修改是使它成为一个return
声明:
Callback<ListView<Contacts>, ListCell<Contacts>> factory = new Callback<>() {
@Override
public ListCell<Contacts> call(ListView<Contacts> lv) {
return new ListCell<>() {
@Override
protected void updateItem(Contacts item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? "-" :( "[" + item.getContactID() + "] " + item.getContactName()));
}
};
}
};
推荐阅读
- amazon-web-services - 通过在胶水超时中循环数据帧来删除顶点
- javascript - 如何从正在返回的这个复杂响应中获取 url?
- c++ - 如何从工作中的 VC++ 项目中生成 DLL?
- css - 通过css更改显示顺序
- java - 如何正确使用 getDayOfWeek 方法
- hyperledger-fabric - 运行“go build”命令时出现错误“调用 s.statsd.SendLoop 时参数不足”
- angular - 打字稿等到条件推送数组中的元素
- json - 如何创建一个 Flutter Futurebuilder 函数来显示从 JSON 中获取的字符串数组?
- php - 从数组php获取多列,array_column的替代
- javascript - 如何让我的代码由`setInterval`运行而不向用户发送垃圾邮件