@SuppressWarnings("unchecked")
  private void init(Object object, Parameterized parameterized, ResourceBundle bundle,
      JCommander jCommander) {
    this.object = object;
    this.parameterized = parameterized;
    this.bundle = bundle;
    if (this.bundle == null) {
      this.bundle = findResourceBundle(object);
    }
    this.jCommander = jCommander;

    if (parameterAnnotation != null) {
      String description;
      if (Enum.class.isAssignableFrom(parameterized.getType())
          && parameterAnnotation.description().isEmpty()) {
        description = "Options: " + EnumSet.allOf((Class<? extends Enum>) parameterized.getType());
      }else {
        description = parameterAnnotation.description();
      }
      initDescription(description, parameterAnnotation.descriptionKey(),
          parameterAnnotation.names());
    } else if (dynamicParameterAnnotation != null) {
      initDescription(dynamicParameterAnnotation.description(),
          dynamicParameterAnnotation.descriptionKey(),
          dynamicParameterAnnotation.names());
    } else {
      throw new AssertionError("Shound never happen");
    }

    try {
      defaultObject = parameterized.get(object);
    } catch (Exception e) {
    }

    //
    // Validate default values, if any and if applicable
    //
    if (defaultObject != null) {
      if (parameterAnnotation != null) {
        validateDefaultValues(parameterAnnotation.names());
      }
    }
  }
@ SuppressWarnings ( "unchecked" ) private void init ( Object object , Parameterized parameterized , ResourceBundle bundle , JCommander jCommander ) { this . object = object ; this . parameterized = parameterized ; this . bundle = bundle ; if ( this . bundle == null ) { this . bundle = findResourceBundle ( object ) ; } this . jCommander = jCommander ; if ( parameterAnnotation != null ) { String description ; if ( Enum . class . isAssignableFrom ( parameterized . getType ( ) ) && parameterAnnotation . description ( ) . isEmpty ( ) ) { description = "Options: " + EnumSet . allOf ( ( Class < ? extends Enum > ) parameterized . getType ( ) ) ; } else { description = parameterAnnotation . description ( ) ; } initDescription ( description , parameterAnnotation . descriptionKey ( ) , parameterAnnotation . names ( ) ) ; } else if ( dynamicParameterAnnotation != null ) { initDescription ( dynamicParameterAnnotation . description ( ) , dynamicParameterAnnotation . descriptionKey ( ) , dynamicParameterAnnotation . names ( ) ) ; } else { throw new AssertionError ( "Shound never happen" ) ; } try { defaultObject = parameterized . get ( object ) ; } catch ( Exception e ) { } if ( defaultObject != null ) { if ( parameterAnnotation != null ) { validateDefaultValues ( parameterAnnotation . names ( ) ) ; } } }
Initializes the state of this parameter description. This will set an appropriate bundle if it is <tt>null</tt>.
If its the description in is empty and it refers to an enum type, then the description will be set to its possible
values. It will also attempt to validate the default value of the parameter.

@param object the object defining the command-line arguments
@param parameterized the wrapper for the field or method annotated with \@Parameter this represents
@param bundle the locale
@param jCommander the parent JCommander instance
@see #initDescription(String, String, String[])