code: public static MethodHandle findReadMethodHandle(Field field) {
      String readMethodName;
      MethodHandle mh = null;
      if (boolean.class.equals(field.getType())) {
        readMethodName = IntrospectionUtils.getReadMethodNameForBoolean(field);
        mh = findInstanceMethod(field.getDeclaringClass(), readMethodName, field.getType());
      }
      if (mh == null) {
        readMethodName = getReadMethodName(field);
        mh = findInstanceMethod(field.getDeclaringClass(), readMethodName, field.getType());
      }
      if (mh == null) {
        String pattern = "Class %s requires a public accessor method for field %s";
        throw new NoAccessorMethodException(
            String.format(pattern, field.getDeclaringClass().getName(), field.getName()));
      }
      return mh;
    }
docs: Finds and returns a {@link MethodHandle} that can be used to read the field represented by the
  given metadata.
  
  @param field
  the field
  
  @return the {@link MethodHandle} for reading the field's value
  @throws EntityManagerException
  if no read method exists