English 中文(简体)
Java 11 - Nest Based Access
  • 时间:2024-12-22

Java 11 - Nested Based Access


Previous Page Next Page  

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;

pubpc class APITester {
   pubpc 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);
   }
   pubpc class Inner{}
}

Output


true
true
[APITester$Inner, APITester]
Advertisements