Java 8 通用 LambdaMetafactory?

标签 java generics lambda java-8

在转换 Java 8 access private member with lambda? 时来自 concrete formatgeneric format我找到了 another limitation :

To issue a complete symbolic type descriptor, the compiler must also determine the return type. This is based on a cast on the method invocation expression, if there is one, or else Object if the invocation is an expression or else void if the invocation is a statement.

我很好奇是否有办法overcome this

更新:Working ExampleHolger

最佳答案

如果您的编译时调用签名与您传递给LambdaMetafactory。它将执行所需的转换。

对于 lambda 实例方法的实际调用,没有性能损失。在返回封装了 MethodHandleCallSite 之前,LambdaMetafactory 决定生成的 lambda 将如何工作。因此,您调用它来构建 lambda 实例的方式不会影响结果。

关于Java 8 通用 LambdaMetafactory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28196829/

相关文章:

java - multidex 应用程序在尝试运行仪器测试时出现 ZipException : duplicate entry for junit,

java - 在 Android 中隐藏另一个应用程序

java - Peek() 真正地看到元素流过管道中的某个点

java - 当我不知道泛型对象的类型时,如何避免 Java 中未经检查的方法警告?

具有扩展类型约束的 Swift 字典

java - Jinterop 冒充

java - Android:无法创建泛型类

python - 读取文件时使用 lambda 函数将日期转换为时间戳

c++ - 使用 c++0x Lambda 表达式时调用不匹配

c++ - 将 lambda 转换为 std::tr1::function