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
二维码
