Java 方法调用表达式深度解析
1. 方法调用模式
方法调用的模式根据编译时声明和调用形式来确定,具体规则如下:
- 如果编译时声明有 static 修饰符,调用模式为 static 。
- 若方法调用左括号前部分为 super . Identifier 或 TypeName . super . Identifier 形式,调用模式为 super 。
- 若方法调用的限定类型是接口,调用模式为 interface 。
- 其他情况,调用模式为 virtual 。
若编译时声明的调用类型结果不是 void ,方法调用表达式的类型通过对编译时声明的调用类型的返回类型应用捕获转换得到。
2. 运行时方法调用评估
运行时方法调用需要五个步骤:
1. 计算目标引用(如有必要)。
2. 计算参数表达式。
3. 检查要调用的方法的可访问性。
4. 定位要执行的方法的实际代码。
5. 创建新的激活帧,必要时进行同步,并将控制权转移到方法代码。
3. 计算目标引用(如有必要)
根据方法调用的形式,有六种情况需要考虑:
| 调用形式 | 目标引用情况 |
| — | — |
| MethodName (仅标识符) | - 若调用模式为
超级会员免费看
订阅专栏 解锁全文
81

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



