Java 11 – Nested Based Access

  • Post author:
  • Post category:Java 11
  • Post comments:1 Comment
Java 11 - Nested Based Access

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.

This Post Has One Comment

Leave a Reply