This topic is about Java 11 – Nested Based Access.
Java 11 introduced a concept of nested class where we can declare a class within a class. This nesting of classes allows to logically group the classes to be used in one place, making them more readable and maintainable. Nested class can be of four types −
- Static nested classes
- Non-static nested classes
- Local classes
- Anonymous classes
Java 11 also provide the concept of nestmate to allow communication and verification of nested classes.
Consider the following example −
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{} }
Output
true true [APITester$Inner, APITester]
In this topic we learned about Java 11 – Nested Based Access. To know more, Click Here.
Pingback: Java 11 - Var in Lambda - Adglob Infosystem Pvt Ltd