gpt4 book ai didi

java - 为什么我不能将方法引用直接分配给 Object 类型的变量?

转载 作者:IT老高 更新时间:2023-10-28 20:52:21 28 4
gpt4 key购买 nike

关于 java-8 语法的简单问题。为什么 JLS-8 会限制这样的表达式:

Object of_ref = Stream::of;  // compile-time error

并且只允许类似:

java.util.function.Function of_ref = Stream::of;
Object obj = of_ref; // compiles ok

?

最佳答案

Object 不是功能接口(interface),方法引用只能分配给功能接口(interface)。参见示例 JLS #15.13.2

A method reference expression is compatible in an assignment context, invocation context, or casting context with a target type T if T is a functional interface type (§9.8) and the expression is congruent with the function type of the ground target type derived from T.

关于java - 为什么我不能将方法引用直接分配给 Object 类型的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29082430/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com