Java 方法引用表达式详解
1. 方法引用表达式概述
方法引用表达式用于引用方法的调用,但并不实际执行该调用。某些形式的方法引用表达式还允许将类实例创建或数组创建视为方法调用。
例如,给定如下调用:
C c = new D();
c.id(new Object()); // 抛出 ClassCastException
实际调用的方法 D.id() 的擦除签名与编译时方法声明 C.id() 不同。前者接受 String 类型的参数,而后者接受 Object 类型的参数。在执行方法体之前,该调用会因 ClassCastException 而失败。这种情况只有在程序产生编译时未检查警告时才会出现,实现可以通过创建桥接方法来强制执行这些语义。在上述示例中,类 D 会创建如下桥接方法:
Object id(Object x) { return id((String) x); }
2. 方法引用表达式的语法形式
方法引用表达式有以下几种形式:
- ExpressionName :: [TypeArguments] Identifier
- Primary :: [TypeArguments] Identifier <
超级会员免费看
订阅专栏 解锁全文

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



