我不是 Java 开发人员,但我有多年的 C# 经验。我有一个List<Foo>,我需要转换为一个List<Bar>using ModelMapperwhereFoo并且Bar具有基本相同的属性。
目前我把它写成:
@AutoWired ModelMapper modelMapper;
...
List<Bar> results = repository
.getFoos()
.stream()
.map(x -> modelMapper.map(x, Bar.class))
.collect(Collectors.toList());
这很好用。但是,我觉得 lambda 表达式可以只用一个简单的方法引用来代替。如果这是 C#,我可能可以按照以下方式做一些事情:
var results = repository.getFoos().Select(modelMapper.map<Bar>).ToList();
但是我在 Java 中找不到正确的语法。我试过这个:
.map(modelMapper::<Bar>map)
但我得到错误:
无法解析方法“ map”
我不确定这是因为我以某种方式混淆了语法,还是因为 map 方法有太多重载而无法创建明确的引用。如果有帮助,map我尝试使用的重载定义为:
public <D> D map(Object source, Class<D> destinationType)
没有 lambda 表达式,有什么方法可以实现此映射?
繁星点点滴滴
慕运维8079593
九州编程
相关分类