java lambda 表达式实现原理
Posted 倾-尽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java lambda 表达式实现原理相关的知识,希望对你有一定的参考价值。
源代码
public class LambdaTest {
public static void printString(String str, Print<String> print) {
print.print(str);
}
public static void main(String[] args) {
printString("hello", s -> System.out.println(s));
}
}
interface Print<T> {
void print(T t);
}
编译后代码:
public class LambdaTest {
public static void PrintString(String s, Print<String> print) {
print.print(s);
}
public static void main(String[] args) {
PrintString("test", new LambdaTest$$Lambda$1());
}
private static void lambda$main$0(String x) {
System.out.println(x);
}
static final class LambdaTest$$Lambda$1 implements Print {
public void print(Object obj) {
LambdaTest.lambda$main$0((String) obj);
}
private LambdaTest$$Lambda$1() {
}
}
}
@FunctionalInterface
interface Print<T> {
void print(T x);
}
结论:
java lambda表达式是通过静态内部类和私有方法来实现的。
以上是关于java lambda 表达式实现原理的主要内容,如果未能解决你的问题,请参考以下文章