Java 方法调用表达式详解
1. 方法调用概述
在 Java 编程中,方法调用是一个常见且重要的操作。当进行方法调用时,需要从多个可能适用的方法中选择最合适的方法。这个选择过程通常分为多个阶段,每个阶段都有其特定的规则和判断条件。
2. 严格调用适用性判断
在严格调用阶段,对于一个方法 m ,有以下判断条件:
- 若 m 是泛型方法,对于 1 ≤ i ≤ n ,如果 ei 与适用性相关,那么 ei 在严格调用上下文中与 Fi[R1:=U1, ..., Rp:=Up] 兼容(§5.3);并且对于 1 ≤ l ≤ p , Ul <: Bl[R1:=U1, ..., Rp:=Up] 。
- 若 m 不是泛型方法,对于 1 ≤ i ≤ n ,要么 ei 在严格调用上下文中与 Fi 兼容(§5.3),要么 ei 与适用性无关。
如果在严格调用阶段没有找到适用的方法,搜索将进入第二阶段(§15.12.2.3);否则,将从严格调用适用的方法中选择最具体的方法(§15.12.2.5)。需要注意的是,隐式类型的 lambda 表达式或不精确的方法引用表达式在解析目标类型之前含义模糊,包含这些表达式的参数在重载解析完成之前,除了其预期的元数外,不被视为与适用性相关,
超级会员免费看
订阅专栏 解锁全文
6385

被折叠的 条评论
为什么被折叠?



