栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

getDeclaredMethods()在Java 7和Java 8中的行为不同

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

getDeclaredMethods()在Java 7和Java 8中的行为不同

getDeclaredMethods()
此处的行为正确,因为它可以准确告诉您在类中找到的内容。如果输入
interface
使用Java
7目标的编译器(或更旧的编译器),您将看不到Java 7实现的输出有所不同
getDeclaredMethods()
。

这是 编译器 ,其行为不同。

interface
在Java 8中编译此类子程序时,将生成桥接方法,该方法将不会为Java 7目标生成,因为Java
7目标甚至不可能。

现在为接口生成桥接方法的原因是,通常您拥有比接口更多的实现类,因此在接口中使用

default
桥接方法可以避免将桥接方法添加到每个实现中。此外,如果只有一种
abstract
方法没有实现的桥接方法,它会使lambda类的生成更加容易。

当

interface
层次结构需要桥接方法但不提供时
default
,编译器必须使用
Lambdametafactory.altmetafactory
而不是
Lambdametafactory.metafactory
指定所需的每个桥接方法来生成代码。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496400.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号