我有一张地图,我想要计算一些东西。在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
代替。不过,我想知道是否有可能直接传递一个运算符作为参考。
答案 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;