BIGE_BIGGER 2018-10-30 09:56 采纳率: 0%
浏览 1210
已结题

java 统计集合中对象的不特定字段的平均值

java 统计集合中对象的不特定字段的平均值如何做?

try {
String methodName = "get"+projectName;
Method method = EsFitnessTestRecordDO.class.getMethod(methodName);
double ave = projectAndSexList.stream().mapToDouble(method).average().average().getAsDouble();//动态统计,报错,怎么写?
double average = projectAndSexList.stream().mapToDouble(EsFitnessTestRecordDO::getBmi).average().getAsDouble();//普通统计bmi字段的平均值,getBmi是EsFitnessTestRecordDO对象中bmi字段的get方法

    }catch (NoSuchMethodException e){

    }
            ![图图片说明](https://img-ask.csdn.net/upload/201810/30/1540893458_171600.png)
  • 写回答

1条回答

  • threenewbee 2018-10-30 10:40
    关注

    重复问题,具体回答看:https://ask.csdn.net/questions/705290

     private static Map<List<String>, List<MyClass>> groupListBy(List<MyClass> data, String[] groupByFieldNames) {
        final MethodHandles.Lookup lookup = MethodHandles.lookup();
        List<MethodHandle> handles = 
            Arrays.stream(groupByFieldNames)
                  .map(field -> {
                      try {
                          return lookup.findGetter(MyClass.class, field, String.class);
                      } catch (Exception e) {
                          throw new RuntimeException(e);
                      }
                  }).collect(toList());
        return data.stream().collect(groupingBy(
                d -> handles.stream()
                            .map(handle -> {
                                try {
                                    return (String) handle.invokeExact(d);
                                } catch (Throwable e) {
                                    throw new RuntimeException(e);
                                }
                            }).collect(toList())
            ));
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器