- Java 11 教程
- Java 11 - 主页
- Java 11 - 概述
- Java 11 - 环境设置
- Java 11 - 标准 HttpClient
- Java 11 - 编译免费启动
- Java 11 - 字符串 API
- Java 11 - 集合到数组
- Java 11 - 文件 API
- Java 11 - 可选类
- Java 11 - 非谓词
- Java 11 - lambda 中的 var
- Java 11 - 基于 Nest 的访问
- Java 11 - 删除/弃用的 API
- Java其他版本教程
- Java教程
- Java 8 教程
- Java 9 教程
- Java 10 教程
- Java 12 教程
- Java 13 教程
- Java 14 教程
- Java 15 教程
- Java 16 教程
- Java 11 有用资源
- Java 11 - 快速指南
- Java 11 - 有用的资源
- Java 11 - 讨论
Java 11 - 基于嵌套的访问
Java 11 引入了嵌套类的概念,我们可以在类中声明类。这种类的嵌套允许将要在一个地方使用的类按逻辑分组,从而使它们更具可读性和可维护性。嵌套类可以有四种类型 -
静态嵌套类
非静态嵌套类
本地课程
匿名类
Java 11 还提供了 Nestmate 的概念,以允许嵌套类的通信和验证。
考虑以下示例 -
ApiTester.java
import java.util.Arrays; import java.util.Set; import java.util.stream.Collectors; public class APITester { public static void main(String[] args) { boolean isNestMate = APITester.class.isNestmateOf(APITester.Inner.class); boolean nestHost = APITester.Inner.class.getNestHost() == APITester.class; System.out.println(isNestMate); System.out.println(nestHost); Set<String> nestedMembers = Arrays.stream(APITester.Inner.class.getNestMembers()) .map(Class::getName) .collect(Collectors.toSet()); System.out.println(nestedMembers); } public class Inner{} }
输出
true true [APITester$Inner, APITester]