资讯专栏INFORMATION COLUMN

Java JDK11基于嵌套的访问控制

付伦 / 265人阅读

摘要:和其他语言通过内部类支持嵌套类。因此,它需要编译器创建合成桥接方法,以提供对外部类的私有字段的访问。这些更改对于支持嵌套类并编译为字节码的其他语言非常有用。此功能为引入了三个新方法此功能还需要更改虚拟机规范,特别是第节访问控制。

Java(和其他语言)通过内部类支持嵌套类。要使其正常工作,需要编译器执行一些技巧。这是一个例子:

public class Outer {
    private int outerInt;

     class Inner {
       public void printOuterInt() {
         System.out.println("Outer int = " + outerInt);
       }
    }
}

在执行编译之前,编译器会修改它以创建类似的东西:

public class Outer {
  private int outerInt;

  public int access$000() {
    return outerInt; 
  }

}

class Inner$Outer {

  Outer outer;

  public void printOuterInt() {
    System.out.println("Outer int = " + outer.access$000());
  }
}

虽然从逻辑上讲,内部类是与外部类相同的代码实体的一部分,但它被编译为一个多带带的类。因此,它需要编译器创建合成桥接方法,以提供对外部类的私有字段的访问。

这个JEP引入了巢的概念,其中同一巢的两个成员(我们的例子中的外部和内部)是同窝。为类文件格式NestHost和NestMembers定义了两个新属性。这些更改对于支持嵌套类并编译为字节码的其他语言非常有用。

此功能为java.lang.Class引入了三个新方法:

Class getNestHost()

Class[] getNestMembers()

boolean isNestmateOf(Class)

此功能还需要更改Java虚拟机规范(JVMS),特别是第5.4.4节“访问控制”。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73188.html

相关文章

  • 一篇文章了解新发布Java JDK 11

    摘要:到年将提供修复和安全更新。中期版本将每六个月发布一次。将扩展类文件格式以支持新的常量池形式。将提供一个低开销的数据收集框架,用于对应用程序和进行故障排除。项目负责人表示,维护成本和低使用率并不能证明其保留是合理的。将是第一个获得支持的平台。 Java JDK 11删除了CORBA,Java EE和JavaFX支持,但添加了十几个主要新功能。 Java Development Kit(J...

    Ethan815 评论0 收藏0
  • JDK11新特性解读

    摘要:千呼万唤,于正式发布版本即,也就是官方推荐可以广泛使用的版本,其中发布了包括等个新特性,让我们一睹为快。一新特性一览二发布计划日期阶段说明对进入阶段的变化会应用越来越严格的审查。我们需要支持以保持竞争力并与最新标准保持同步。 千呼万唤,JDK11于2018-09-25正式发布GA版本(GA即General Availability,也就是官方推荐可以广泛使用的版本),其中发布了包括ZG...

    piglei 评论0 收藏0
  • tomcat

    摘要:服务器插件在其他的服务器进程内部地址空间启动一个虚拟机,容器组件在此虚拟机中运行。如有客户端发出调用请求,服务器插件获得对此请求的控制并转发给容器组件使用通讯机制,即本地调用接口。 博文参考 http://xtony.blog.51cto.com/3964396/988706/ http://blog.sina.com.cn/s/blog_a0e7e34c01015nes.html h...

    李世赞 评论0 收藏0
  • tomcat

    摘要:服务器插件在其他的服务器进程内部地址空间启动一个虚拟机,容器组件在此虚拟机中运行。如有客户端发出调用请求,服务器插件获得对此请求的控制并转发给容器组件使用通讯机制,即本地调用接口。 博文参考 http://xtony.blog.51cto.com/3964396/988706/ http://blog.sina.com.cn/s/blog_a0e7e34c01015nes.html h...

    hightopo 评论0 收藏0

发表评论

0条评论

付伦

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<