code: public void validate(Class<? extends Fachwert> clazz, Object... args) {
          Class[] argTypes = toTypes(args);
          try {
              Method method = clazz.getMethod("validate", argTypes);
              method.invoke(null, args);
          } catch (InvocationTargetException ex) {
              LOG.log(Level.FINE, "Call of validate method of " + clazz + "failed:", ex);
              if (ex.getTargetException() instanceof ValidationException) {
                  throw (ValidationException) ex.getTargetException();
              }
              getFachwert(clazz, args);
          } catch (ReflectiveOperationException ex) {
              LOG.log(Level.FINE, "Cannot call validate method of " + clazz, ex);
              getFachwert(clazz, args);
          }
      }
docs: Validiert die uebergebenen Argumente mit Hilfe der angegebenen Klasse.
  Viele Fachwert-Klassen haben eine (statische) validate-Methode, die
  dafuer verwendet wird. Fehlt diese validate-Methode, wird der
  Konstruktor fuer die Validierung herangezogen. Schlaegt die Validierung
  fehl, wird eine {@link javax.validation.ValidationException} geworfen.
  <p>
  Dies ist eine der wenigen Stelle, wo eine
  Log-Ausgabe erscheinen kann. Hintergrund ist die Exception, die hier
  gefangen, aber nicht weitergegeben wird. Im Log-Level "FINE" kann man
  sich diese Exception zur Fehlersuche ausgeben.
  </p>
  
  @param clazz Fachwert-Klasse
  @param args Argument(e), die validiert werden