我有一个名为FileDb
的类,该类中的属性包含一个ParamAnalysis
类型的对象的列表:
public class FileDb {
private List<ParamAnalysis> paramsAnaylsis;
ParamAnalysis
包含一堆类型为double
的值:public class ParamAnalysis {
double max;
double min;
...
我想获取paramsAnaylsis列表中的所有“最大值”。所以我在做:
public static double[] getMaxesFromDb(FileDb fileDb){
return fileDb.getParamsAnaylsis().stream().map(paramAnalysis -> Double.valueOf(paramAnalysis.getMax())).toArray();
}
但我提出了错误:
Error:(35, 120) java: incompatible types: java.lang.Object[] cannot be converted to double[]
如何从此方法获得双打数组?
最佳答案
您应该使用mapToDouble
接收DoubleStream
并以toArray()
结尾。收到异常的原因是,即使您转换为Double
,它仍然是一个对象。
fileDb.getParamsAnaylsis()
.stream()
.mapToDouble(paramAnalysis -> paramAnalysis.getMax()) <-- creates a stream of primitive doubles
.toArray();