53、Java 方法调用表达式全解析

Java 方法调用表达式全解析

在 Java 编程中,方法调用是一项基础且关键的操作。下面将详细解析 Java 方法调用表达式的各个方面,包括方法选择、调用类型确定、编译时检查以及运行时评估等内容。

方法选择规则

在存在多个重载方法的情况下,需要确定最具体的方法。如果两个方法具有相同的签名,会考虑每个最大特定方法的返回类型(在适应任何类型参数之后)。若根据上述规则没有首选方法,当一个最大特定方法满足以下条件时会被优先选择:
- 其签名是每个最大特定方法签名的子签名。
- 对于每个最大特定方法,它是返回类型可替换的。

最具体方法抛出的异常类型从最大特定方法的 throws 子句派生而来,具体规则如下:
1. 泛型方法处理 :如果最具体方法是泛型的,throws 子句首先会适应最具体方法的类型参数;如果最具体方法不是泛型,但至少有一个最大特定方法是泛型的,throws 子句会首先被擦除。
2. 异常类型筛选 :抛出的异常类型包括满足以下约束的每个类型 E:
- E 在其中一个 throws 子句中被提及。
- 对于每个 throws 子句,E 是该子句中某个命名类型的子类型。

如果无法确定唯一的方法,方法调用将产生歧义,导致编译时错误。

方法调用类型确定

最具体可访问且适用方法的调用类型是一种方法类型,它表达了调用参数的目标类型、调用的结果(返回类型或 void)以及调用的异常类型。其确定方式如下:
- 泛型方法无显式类型参数 :如果选择的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值