java的自定义类传入lambda
时间: 2023-10-23 21:15:15 浏览: 70
Java中可以将自定义类传入lambda中作为参数或返回值。
例如,假设有一个自定义类Person:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
可以将该类作为lambda表达式的参数:
```
List<Person> people = new ArrayList<>();
// 添加一些人
// 根据年龄排序
Collections.sort(people, (p1, p2) -> p1.getAge() - p2.getAge());
```
也可以将该类作为lambda表达式的返回值:
```
public interface PersonFactory {
Person create(String name, int age);
}
PersonFactory factory = (name, age) -> new Person(name, age);
Person person = factory.create("John", 30);
```
在这个例子中,PersonFactory是一个函数式接口,它定义了一个create方法,该方法接受一个名称和年龄,并返回一个Person对象。lambda表达式实现了该接口,并返回一个新的Person对象。
阅读全文