java - 使用函数显示作业列表
问题描述
我正在学习 lambda。但我在显示结果时遇到了问题。
public class JavaTest {
public static Function<String, String> function2() {
return str -> {return str.replace("programmer", "engineer");};
}
public static void main(String[] args) {
List<Person> results = new ArrayList<Person>();
results.add(new Person("Elsdon", "Jaycob","Java programmer","male",43,2000));
results.add(new Person("Tamsen", "Brittany","Java programmer","female",23,1500));
results.add(new Person("Floyd", "Donny","Java programmer","male",33,1800));
//results.stream().map(function2()).collect(Collectors.toSet());
但是当我尝试调试我的代码时,map
.
我想知道如何正确使用function
。任何回复都是感谢的。
解决方案
假设你有一个Person
类:
public class Person {
private String name;
private String familyName;
private String jobTitle;
// Other attributes and setter/getter methods
}
现在你有两种方法:
1- 覆盖Person
类的 toString() 方法:
@Override
public String toString() {
return this.name + " " + this.familyName + " " + this.jobTitle;
}
然后改变你function2()
如下:
public static Function<Person> function2() {
return p -> {return p.toString().replace("programmer", "engineer");};
}
2-或者您只能更改jobTitle
:
public static Function<Person> function2() {
return p -> {return p.getJobTitle().replace("programmer", "engineer");};
}
推荐阅读
- mysql - 如何根据其他表行值选择数据?
- docker - Docker 守护程序和客户端/CLI 的场景在不同的盒子上?
- javascript - 按钮单击获取所有值而不是索引
- fortran - 并行和串行的数组表达式与显式循环
- python - AttributeError:加载 tf.compat.v1.train.SessionRunHook 时模块“tensorflow”没有属性“compat”
- vue.js - Vuetify 日历。如何在“日”视图中放入一行,该视图当前在一列中包含小时数?
- python - python:如何按所有键对列表进行排序?
- javascript - 当兄弟重新渲染时,如何使反应组件不重新渲染?
- javascript - 正确创建用户后 Firebase Firestore 自定义 ID 未创建新文档
- scikit-learn - 如何知道哪些特征在预测模型中贡献显着?