如何解决Java中的Lambda是否在执行/运行期间创建匿名类?
在Java SE8规范中写为:“ 对lambda表达式的求值将生成功能接口的实例”。
到目前为止,我的理解是- lambda表达式创建了一些实现功能接口的匿名类
有人可以详细解释一下,用我们编写的lamda表达式在运行时会发生什么?
解决方法
不,他们没有。
关于运行时如何表示lambda的 exact 机制故意未指定。
您所知道的是,您将获得一个实现必要接口/行为的有效对象。但除此之外,几乎没有指定。规范甚至没有告诉您两次调用是否会产生相同的对象。
完成这个含糊不清的规范,以便编译器和/或运行时可以在不违反规范的情况下进行优化。
与匿名类的关系是一个历史悠久的关系:如果您想在不使用lambda的情况下执行lambda的操作,那么匿名类是您的下一个最佳工具。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。