我有一个简单的类:
class Note {
public int id;
public String status;
// some other fields....
}
我想通过流api映射这个类的字段。我有一个简单的方法实现,那就是做我想要的:
public function(int externalId) {
Set<Note> notes = getFromRepository(); // simple method for getting all Note from repository
for (Note note : notes){
note.setId(externalId);
note.setStatus("Open");
}
}
如何使用Stream api?
Map在这里并不合适,因为
- setter通常不会返回值(尽管您可以伪造它(,并且
- map不是一个终端操作,因此您需要一些不必要的终端操作来触发流
但是在这里使用流没有任何好处。由于getFromRespository
返回一个集合,您可以直接使用set接口的forEach
方法。
public void function(int externalId) {
getFromRespository().forEach(note->{
note.setID(externalId);
note.setStatus("Open");
});
}
顺便说一句,您现有的实现没有任何问题。正如你所说;"简单";,因此易于理解。