为什么Java 8引入* Integer.sum(int a,int b)*
我只是注意到JDK8为Integer
类引入了这个方法:
/** * Adds two integers together as per the + operator. * * @param a the first operand * @param b the second operand * @return the sum of {@code a} and {@code b} * @see java.util.function.BinaryOperator * @since 1.8 */ public static int sum(int a, int b) { return a + b; }
这种方法有什么意义? 为什么我应该调用此方法而不是使用+
运算符? 我能想到的唯一可能性是,例如,当混合字符串和整数时, +
运算符会改变含义,所以
System.out.println("1"+2+3); // prints 123 System.out.println("1"+Integer.sum(2,3)); // prints 15
但是使用括号无论如何都会有用
System.out.println("1"+(2+3)); // prints 15
它可以作为传递给需要相关function接口( IntBinaryOperator
)的方法的方法引用( Integer::sum
)。
例如 :
int sum = IntStream.range(1,500).reduce(0,Integer::sum);
当然,这个例子可以使用.sum()
而不是reduce。 我只是注意到IntStream.sum的Javadoc提到这个精确的减少等同于sum()。
- 如何使用Java从Hadoop读取偏移量的文件
- 如何从Java websocket服务器发送图像以在HTML5canvas中使用?
- Google Calendar API和OAuth问题
- 使用蓝牙将PC连接到Android手机
- Exchange.getIn()。getBody()在第二次调用时返回camel中的空字符串
- Restful webservices – NoClassDefFoundError:org / glassfish / jersey / ExtendedConfig
- 从java中的mysql获取表元数据
- 在Android 4.4 SDK更新后,android-support-v7-appcombat jar不匹配和应用程序崩溃
- required:double found:没有参数