docs: static boolean isAccessibleOrMakeAccessible(final AccessibleObject fieldOrConstructor) {
          // Make field accessible if needed
          final AtomicBoolean isAccessible = new AtomicBoolean(
                  // Replace with (in JDK 9+): fieldOrConstructor.canAccess(instance);
                  fieldOrConstructor.isAccessible());
          if (!isAccessible.get()) {
              try {
                  fieldOrConstructor.setAccessible(true);
                  isAccessible.set(true);
              } catch (final RuntimeException e) { // JDK 9+: InaccessibleObjectException | SecurityException 
                  AccessController.doPrivileged(new PrivilegedAction<Void>() {
                      @Override
                      public Void run() {
                          try {
                              fieldOrConstructor.setAccessible(true);
                              isAccessible.set(true);
                          } catch (final RuntimeException e) { // JDK 9+: InaccessibleObjectException | SecurityException
                              // Ignore
                          }
                          return null;
                      }
                  });
              }
          }
          return isAccessible.get();
      }