Three abbreviations of Java lambda expressions
•
Java
Omit parameter type
public static Calculable calculate(char opr) { Calculable result; if (opr == '+') { // Lambda表达式实现Calculable接口 result = (a,b) -> { return a + b; }; } else { // Lambda表达式实现Calculable接口 result = (a,b) -> { return a - b; }; } return result; }
Omit parameter parentheses
// 可计算接口 @FunctionalInterface public interface Calculable { // 计算一个int数值 int calculateInt(int a); }
public static void main(String[] args) { int n1 = 10; // 实现二次方计算Calculable对象 Calculable f1 = calculate(2); // 实现三次方计算Calculable对象 Calculable f2 = calculate(3); // 调用calculateInt方法进行加法计算 System.out.printf("%d二次方 = %d \n",n1,f1.calculateInt(n1)); // 调用calculateInt方法进行减法计算 System.out.printf("%d三次方 = %d \n",f2.calculateInt(n1)); } /** * 通过幂计算 * * @param power 幂 * @return 实现Calculable接口对象 */ public static Calculable calculate(int power) { Calculable result; if (power == 2) { // Lambda表达式实现Calculable接口 // 标准形式 result = (int a) -> { return a * a; }; } else { // Lambda表达式实现Calculable接口 // 省略形式 result = a -> { return a * a * a; }; } return result; }
10 quadratic = 100 10 cubic = 1000
Omit return and braces
public static Calculable calculate(int power) { Calculable result; if (power == 2) { // Lambda表达式实现Calculable接口 // 标准形式 result = (int a) -> { return a * a; }; } else { // Lambda表达式实现Calculable接口 // 省略形式 result = a -> a * a * a; } return result; }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码