【发布时间】:2017-08-05 17:25:14
【问题描述】:
在 Java 8 中,有一个类似于函数指针 (java.util.function.Function) 的特性。它通常像这样使用:Function<LookupKey,LookupResult>,但是,如果该方法返回原始类型,则会出现问题。 Function<ArgType,Void.TYPE> 不起作用,它无法编译并出现非常令人困惑的错误消息(“找不到符号 Void.TYPE”)。我宁愿避免更改我的方法以返回 Object 只是为了传递 null 作为结果。
【问题讨论】:
-
错误消息只是由于您假设
static字段Void.TYPE的存在具有任何相关性而令人困惑。由于在泛型类型签名中,允许使用类、类型变量或其他泛型类型,编译器说它没有找到该名称的 symbol,这意味着没有名为 @987654328 的类@,没有名为Void.TYPE的类型变量,也没有名为Void.TYPE的泛型类型。
标签: generics functional-programming java-8