Java中的强制转换表达式是什么?
一投的表达提供了一种机制,以明确提供 lambda表达式的类型,如果没有可以从上下文推断方便。当方法声明因不相关的功能接口类型而过载时,解决歧义也很有用。
语法
Object o = () -> { System.out.println("nhooo"); };//非法:
Object o = (Runnable) () -> { System.out.println("nhooo"); }; // Legal
示例
interface Algebra1 {int operate(int a, int b);
}
interface Algebra2 {
int operate(int a, int b);
}
public class LambdaCastingTest {
public static void main(String[] args) {
printResult((Algebra1)(a, b) -> a + b); // Cast Expression in Lambda
printResult((Algebra2)(a, b) -> a * b); // Cast Expression in Lambda
}
static void printResult(Algebra1 a) {
System.out.println("From Algebra1 Interface: " + a.operate(40, 20));
}
static void printResult(Algebra2 a) {
System.out.println("From Algebra2 Interface: " + a.operate(40, 20));
}
}
输出结果
From Algebra1 Interface: 60From Algebra2 Interface: 800
以上是 Java中的强制转换表达式是什么? 的全部内容, 来源链接: utcz.com/z/343580.html