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 表达式实现原理的主要内容,如果未能解决你的问题,请参考以下文章
Java技术专题「原理分析系列」Lambda表达式实现原理分析