docs: @Override
      public D get()
      {
          try
          {
              if (field != null)
              {
                  return (D) field.get(getBase());
              }
              else
              {
                  return (D) getter.invoke(getBase());
              }
          }
          catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex)
          {
              throw new IllegalArgumentException(ex);
          }
      }