【发布时间】:2020-07-01 00:21:56
【问题描述】:
这可能是一个简单的问题,但我不会得到最好的解决方案。我的方法如下所示:
public static MlpConfigDto toMlpConfigDto(MlpConfig mlpConfig) {
return new MlpConfigDto().setActivationFunction(mlpConfig.getActivationFunction().getType().name())
.setBatchSize(mlpConfig.getBatchSize()).setDescription(mlpConfig.getDescription())
.setEpochNumber(mlpConfig.getEpochNumber()).setId(mlpConfig.getId())
.setLastUpdated(mlpConfig.getLastUpdated())
.setLayers(new List<LayerDto>(
mlpConfig.getLayers().stream().map(layer -> new ModelMapper().map(layer, LayerDto.class)))
.collect(Collectors.toList()));
}
最后一部分当然不起作用,因为 Java 中没有 new List<LayerDto>。使用Set 这就像一个魅力,但我需要一个List 这里。那么如何为Lists 做最简单的方法呢?
对于Sets,它看起来像这样:
.setLayers(new HashSet<LayerDto>(
mlpConfig.getLayers().stream().map(layer -> new ModelMapper().map(layer, LayerDto.class)))
.collect(Collectors.toSet()));
}
【问题讨论】:
-
嗯,这可以编译吗?看起来你是在
Set上调用collect,还是我读错了? -
你的意思是
new ArrayList<LayerDto>而不是界面吗?是的,当它已经收集到相同的类型时,你不需要包装。
标签: java arraylist java-8 set java-stream