使用整数的加运算符作为BiFunction

时间:2016-09-15 14:39:22

标签: java java-8

我有一张地图,我想要计算一些东西。在java 8之前,我必须在地图中为每个键添加一个零,然后才能像map.put(key, map.get(key)+1)那样。

从Java 8开始,我现在可以使用Map's merge method,如下例所示:

public class CountingMap {

  private static final Map<Integer, Integer> map = new HashMap<> ();

  public static Integer add (final Integer i1,
                             final Integer i2) {
    return i1 + i2;
  }

  public static void main (final String[] args) {
    map.merge (0, 1, CountingMap::add);
    System.out.println (map); //prints {0=1}
    map.merge (0, 1, CountingMap::add);
    System.out.println (map); //prints {0=2}
  }

}

我的问题是,我可以将对Integer的+运算符的引用作为BiFunction传递而不必声明我自己的add函数吗?

我已经尝试了Integer::+Integer::operator+之类的内容,但这些内容都没有。

编辑:正如Tunaki指出的那样,我可以使用Integer::sum代替。不过,我想知道是否有可能直接传递一个运算符作为参考。

1 个答案:

答案 0 :(得分:8)

无法在Java中传递import dismissKeyboard from 'dismissKeyboard'; <TouchableWithoutFeedback onPress={()=> dismissKeyboard()}> <View style={styles.inputWrap}> <Field name="editLocation" component={TextField} /> <Button onPress={handleSubmit(this.onSubmit)}>Sign In</Button> </View> </TouchableWithoutFeedback> 运算符。 您可以直接在方法调用中实例化+

add

或指定变量:

map.merge (0, 1, (i, j) -> i + j);

BiFunction<Integer, Integer, Integer> add = (i, j) -> i + j;

相同的内容