使用方法,可在流中返回Int

迪瓦

我有一个简单的方法:

public int getPrice(String bookingName) 
{
 //return the price of a booking
}

我也有课:

public class Booking 
{
String name;
...
}

我想将预订分组在地图中(键=预订名称,值= getPrice(bookingName)),所以我这样做了:

public TreeMap<String, Integer> bookingForName() {
    return  bookings.stream().
            collect(Collectors.groupingBy(Booking::getName,Collectors.summingInt(getPrice(Booking::getName))));

}

这不起作用,它说:

这行有多个标记:

- The target type of this expression must be a functional interface
- The method getPrice(String) in the type Manager is not applicable for the arguments `(Booking::getName)`

我能怎么做?谢谢!

他们是

您的getPrice()方法采用String而非功能接口,因此您无法调用getPrice(Booking::getName),即使可以,summingInt也不接受int

更改:

Collectors.summingInt(getPrice(Booking::getName))

至:

Collectors.summingInt(b -> getPrice(b.getName()))

另请注意,Collectors.groupingBy返回Map而不是TreeMap如果必须有一个TreeMap,则应调用的其他变体groupingBy

public TreeMap<String, Integer> bookingForName() {
    return bookings.stream()
                   .collect(Collectors.groupingBy(Booking::getName,
                                                  TreeMap::new,
                                                  Collectors.summingInt(b -> getPrice(b.getName()))));

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

流:使用方法参考时,“无法将Comparator转换为int”

使用方法更改ArrayList中的对象并返回

获取使用方法引用在Java中8收藏家toMap方法的流对象

协议中的使用方法

如何使用方法调用内部的各种方法并在Selenium中返回true

从使用方法作为参数的方法中返回字符串

Java使用方法public int代替public static int

LINQ GroupBy中的使用方法

模板中的使用方法,实例外

使用方法获取元数据并以数组形式返回

React Native SDK 的使用方法返回 undefined

什么时候应该使用方法返回值?

Python-使用方法的返回值作为常量

PHP-foreach,使用方法返回值或变量

getRefreshInfo返回405(不允许使用方法)

使用方法时API的数组返回空

如何使用方法返回用户输入值的双数组?

致命错误:无法在(word-press 插件)中的写入上下文中使用方法返回值

使用方法有问题?如何消除使用方法中的错误?

在流操作中使用方法引用和函数对象之间的区别?

决策使用方法

变量的使用方法

在Vue JS中的方法内部使用方法

在jQuery的拖动事件中,在类中定义的使用方法

使用方法返回值作为参数与在一种方法中设置类变量并将其用作另一种方法的参数

如何使用方法返回两个对象以返回新对象

在golang中创建对象后,如何确保使用方法?

在FluentAssertions中,为什么应该使用方法而不是属性?

多次使用方法时,请跟踪类中的变量