# Class CommandLine

java.lang.Object
org.apache.commons.cli.CommandLine

All Implemented Interfaces:
  `Serializable`

public class CommandLine extends Object implements Serializable
Represents list of arguments parsed against a `Options` descriptor.

It allows querying of a boolean `hasOption(String optionName)`, in addition to retrieving the `getOptionValue(String optionName)` for options requiring arguments.

Additionally, any left-over or unrecognized arguments, are available for further processing.

See Also:
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `CommandLine.Builder`
  A nested builder class to create `CommandLine` instance using descriptive methods.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `CommandLine()`
  Creates a command line.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `addArg(String arg)`
  Adds left-over unrecognized option/argument.
  `protected void`
  `addOption(Option option)`
  Adds an option to the command line.
  `static CommandLine.Builder`
  `builder()`
  Creates a new builder.
  `List<String>`
  `getArgList()`
  Gets any left-over non-recognized options and arguments.
  `String[]`
  `getArgs()`
  Gets any left-over non-recognized options and arguments.
  `int`
  `getOptionCount(char optionChar)`
  Gets the number of times this option appears in the command line
  `int`
  `getOptionCount(String optionName)`
  Gets the number of times this option appears in the command line
  `int`
  `getOptionCount(Option option)`
  Gets the number of times this option appears in the command line.
  `Object`
  `getOptionObject(char optionChar)`
  Deprecated.
  due to System.err message; use `getParsedOptionValue(char)` instead.
  `Object`
  `getOptionObject(String optionName)`
  Deprecated.
  due to System.err message; use `getParsedOptionValue(String)` instead.
  `Properties`
  `getOptionProperties(String optionName)`
  Gets the map of values associated to the option.
  `Properties`
  `getOptionProperties(Option option)`
  Gets the map of values associated to the option.
  `Option[]`
  `getOptions()`
  Gets an array of the processed `Option`s.
  `String`
  `getOptionValue(char optionChar)`
  Gets the first argument, if any, of this option.
  `String`
  `getOptionValue(char optionChar, String defaultValue)`
  Gets the argument, if any, of an option.
  `String`
  `getOptionValue(char optionChar, Supplier<String> defaultValue)`
  Gets the argument, if any, of an option.
  `String`
  `getOptionValue(String optionName)`
  Gets the first argument, if any, of this option.
  `String`
  `getOptionValue(String optionName, String defaultValue)`
  Gets the first argument, if any, of an option.
  `String`
  `getOptionValue(String optionName, Supplier<String> defaultValue)`
  Gets the first argument, if any, of an option.
  `String`
  `getOptionValue(Option option)`
  Gets the first argument, if any, of this option.
  `String`
  `getOptionValue(OptionGroup optionGroup)`
  Gets the first argument, if any, of this option group.
  `String`
  `getOptionValue(OptionGroup optionGroup, String defaultValue)`
  Gets the first argument, if any, of an option group.
  `String`
  `getOptionValue(OptionGroup optionGroup, Supplier<String> defaultValue)`
  Gets the first argument, if any, of an option group.
  `String`
  `getOptionValue(Option option, String defaultValue)`
  Gets the first argument, if any, of an option.
  `String`
  `getOptionValue(Option option, Supplier<String> defaultValue)`
  Gets the first argument, if any, of an option.
  `String[]`
  `getOptionValues(char optionChar)`
  Gets the array of values, if any, of an option.
  `String[]`
  `getOptionValues(String optionName)`
  Gets the array of values, if any, of an option.
  `String[]`
  `getOptionValues(Option option)`
  Gets the array of values, if any, of an option.
  `String[]`
  `getOptionValues(OptionGroup optionGroup)`
  Gets the array of values, if any, of an option group.
  `<T> T`
  `getParsedOptionValue(char optionChar)`
  Gets a version of this `Option` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(char optionChar, Supplier<T> defaultValue)`
  Gets a version of this `Option` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(char optionChar, T defaultValue)`
  Gets a version of this `Option` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(String optionName)`
  Gets a version of this `Option` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(String optionName, Supplier<T> defaultValue)`
  Gets a version of this `Option` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(String optionName, T defaultValue)`
  Gets a version of this `Option` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(Option option)`
  Gets a version of this `Option` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(OptionGroup optionGroup)`
  Gets a version of this `OptionGroup` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(OptionGroup optionGroup, Supplier<T> defaultValue)`
  Gets a version of this `OptionGroup` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(OptionGroup optionGroup, T defaultValue)`
  Gets a version of this `OptionGroup` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(Option option, Supplier<T> defaultValue)`
  Gets a version of this `Option` converted to a particular type.
  `<T> T`
  `getParsedOptionValue(Option option, T defaultValue)`
  Gets a version of this `Option` converted to a particular type.
  `<T> T[]`
  `getParsedOptionValues(char optionChar)`
  Gets a version of this `Option` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(char optionChar, Supplier<T[]> defaultValue)`
  Gets a version of this `Option` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(char optionChar, T[] defaultValue)`
  Gets a version of this `Option` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(String optionName)`
  Gets a version of this `Option` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(String optionName, Supplier<T[]> defaultValue)`
  Gets a version of this `Option` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(String optionName, T[] defaultValue)`
  Gets a version of this `Option` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(Option option)`
  Gets a version of this `Option` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(OptionGroup optionGroup)`
  Gets a version of this `OptionGroup` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(OptionGroup optionGroup, Supplier<T[]> defaultValue)`
  Gets a version of this `OptionGroup` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(OptionGroup optionGroup, T[] defaultValue)`
  Gets a version of this `OptionGroup` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(Option option, Supplier<T[]> defaultValue)`
  Gets a version of this `Option` converted to an array of a particular type.
  `<T> T[]`
  `getParsedOptionValues(Option option, T[] defaultValue)`
  Gets a version of this `Option` converted to an array of a particular type.
  `boolean`
  `hasOption(char optionChar)`
  Tests to see if an option has been set.
  `boolean`
  `hasOption(String optionName)`
  Tests to see if an option has been set.
  `boolean`
  `hasOption(Option option)`
  Tests to see if an option has been set.
  `boolean`
  `hasOption(OptionGroup optionGroup)`
  Tests to see if an option has been set.
  `Iterator<Option>`
  `iterator()`
  Returns an iterator over the Option members of CommandLine.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### CommandLine

    protected CommandLine()
    Creates a command line.

- ## Method Details

  - ### builder

    public static CommandLine.Builder builder()
    Creates a new builder.
    Returns:
      a new builder.
    Since:
      1.7.0

  - ### addArg

    protected void addArg(String arg)
    Adds left-over unrecognized option/argument.
    Parameters:
      `arg` - the unrecognized option/argument.

  - ### addOption

    protected void addOption(Option option)
    Adds an option to the command line. The values of the option are stored.
    Parameters:
      `option` - the processed option.

  - ### getArgList

    public List<String> getArgList()
    Gets any left-over non-recognized options and arguments.
    Returns:
      remaining items passed in but not parsed as a `List`.

  - ### getArgs

    public String[] getArgs()
    Gets any left-over non-recognized options and arguments.
    Returns:
      remaining items passed in but not parsed as an array.

  - ### getOptionCount

    public int getOptionCount(char optionChar)
    Gets the number of times this option appears in the command line
    Parameters:
      `optionChar` - the character name of the option.
    Returns:
      Number of times the option is present.
    Since:
      1.11.0

  - ### getOptionCount

    public int getOptionCount(Option option)
    Gets the number of times this option appears in the command line.
    Parameters:
      `option` - the option.
    Returns:
      Number of times the option is present.
    Since:
      1.11.0

  - ### getOptionCount

    public int getOptionCount(String optionName)
    Gets the number of times this option appears in the command line
    Parameters:
      `optionName` - the name of the option.
    Returns:
      Number of times the option is present.
    Since:
      1.11.0

  - ### getOptionObject

    @Deprecated public Object getOptionObject(char optionChar)
    Deprecated.
    due to System.err message; use `getParsedOptionValue(char)` instead.
    Gets the `Object` type of this `Option`.
    Parameters:
      `optionChar` - the name of the option.
    Returns:
      the type of opt.

  - ### getOptionObject

    @Deprecated public Object getOptionObject(String optionName)
    Deprecated.
    due to System.err message; use `getParsedOptionValue(String)` instead.
    Gets the `Object` type of this `Option`.
    Parameters:
      `optionName` - the name of the option.
    Returns:
      the type of this `Option`.

  - ### getOptionProperties

    public Properties getOptionProperties(Option option)
    Gets the map of values associated to the option. This is convenient for options specifying Java properties like `-Dparam1=value1 -Dparam2=value2`. All odd numbered values are property keys and even numbered values are property values. If there are an odd number of values the last value is assumed to be a boolean flag and the value is "true".
    Parameters:
      `option` - name of the option.
    Returns:
      The Properties mapped by the option, never `null` even if the option doesn't exists.
    Since:
      1.5.0

  - ### getOptionProperties

    public Properties getOptionProperties(String optionName)
    Gets the map of values associated to the option. This is convenient for options specifying Java properties like `-Dparam1=value1 -Dparam2=value2`. The first argument of the option is the key, and the 2nd argument is the value. If the option has only one argument (`-Dfoo`) it is considered as a boolean flag and the value is `"true"`.
    Parameters:
      `optionName` - name of the option.
    Returns:
      The Properties mapped by the option, never `null` even if the option doesn't exists.
    Since:
      1.2

  - ### getOptions

    public Option[] getOptions()
    Gets an array of the processed `Option`s.
    Returns:
      an array of the processed `Option`s.

  - ### getOptionValue

    public String getOptionValue(char optionChar)
    Gets the first argument, if any, of this option.
    Parameters:
      `optionChar` - the character name of the option.
    Returns:
      Value of the argument if option is set, and has an argument, otherwise null.

  - ### getOptionValue

    public String getOptionValue(char optionChar, String defaultValue)
    Gets the argument, if any, of an option.
    Parameters:
      `optionChar` - character name of the option
      `defaultValue` - is the default value to be returned if the option is not specified.
    Returns:
      Value of the argument if option is set, and has an argument, otherwise `defaultValue`.

  - ### getOptionValue

    public String getOptionValue(char optionChar, Supplier<String> defaultValue)
    Gets the argument, if any, of an option.
    Parameters:
      `optionChar` - character name of the option.
      `defaultValue` - is a supplier for the default value to be returned if the option is not specified.
    Returns:
      Value of the argument if option is set, and has an argument, otherwise `defaultValue`.
    Since:
      1.7.0

  - ### getOptionValue

    public String getOptionValue(Option option)
    Gets the first argument, if any, of this option.
    Parameters:
      `option` - the option.
    Returns:
      Value of the argument if option is set, and has an argument, otherwise null.
    Since:
      1.5.0

  - ### getOptionValue

    public String getOptionValue(Option option, String defaultValue)
    Gets the first argument, if any, of an option.
    Parameters:
      `option` - the option.
      `defaultValue` - is the default value to be returned if the option is not specified.
    Returns:
      Value of the argument if option is set, and has an argument, otherwise `defaultValue`.
    Since:
      1.5.0

  - ### getOptionValue

    public String getOptionValue(Option option, Supplier<String> defaultValue)
    Gets the first argument, if any, of an option.
    Parameters:
      `option` - the option.
      `defaultValue` - is a supplier for the default value to be returned if the option is not specified.
    Returns:
      Value of the argument if option is set, and has an argument, otherwise `defaultValue`.
    Since:
      1.7.0

  - ### getOptionValue

    public String getOptionValue(OptionGroup optionGroup)
    Gets the first argument, if any, of this option group.
    Parameters:
      `optionGroup` - the option group.
    Returns:
      Value of the argument if option group is selected, and has an argument, otherwise null.
    Since:
      1.9.0

  - ### getOptionValue

    public String getOptionValue(OptionGroup optionGroup, String defaultValue)
    Gets the first argument, if any, of an option group.
    Parameters:
      `optionGroup` - the option group.
      `defaultValue` - is the default value to be returned if the option group is not selected.
    Returns:
      Value of the argument if option group is selected, and has an argument, otherwise `defaultValue`.
    Since:
      1.9.0

  - ### getOptionValue

    public String getOptionValue(OptionGroup optionGroup, Supplier<String> defaultValue)
    Gets the first argument, if any, of an option group.
    Parameters:
      `optionGroup` - the option group.
      `defaultValue` - is a supplier for the default value to be returned if the option group is not selected.
    Returns:
      Value of the argument if option group is selected, and has an argument, otherwise `defaultValue`.
    Since:
      1.9.0

  - ### getOptionValue

    public String getOptionValue(String optionName)
    Gets the first argument, if any, of this option.
    Parameters:
      `optionName` - the name of the option.
    Returns:
      Value of the argument if option is set, and has an argument, otherwise null.

  - ### getOptionValue

    public String getOptionValue(String optionName, String defaultValue)
    Gets the first argument, if any, of an option.
    Parameters:
      `optionName` - name of the option.
      `defaultValue` - is the default value to be returned if the option is not specified.
    Returns:
      Value of the argument if option is set, and has an argument, otherwise `defaultValue`.

  - ### getOptionValue

    public String getOptionValue(String optionName, Supplier<String> defaultValue)
    Gets the first argument, if any, of an option.
    Parameters:
      `optionName` - name of the option.
      `defaultValue` - is a supplier for the default value to be returned if the option is not specified.
    Returns:
      Value of the argument if option is set, and has an argument, otherwise `defaultValue`.
    Since:
      1.7.0

  - ### getOptionValues

    public String[] getOptionValues(char optionChar)
    Gets the array of values, if any, of an option.
    Parameters:
      `optionChar` - character name of the option.
    Returns:
      Values of the argument if option is set, and has an argument, otherwise null.

  - ### getOptionValues

    public String[] getOptionValues(Option option)
    Gets the array of values, if any, of an option.
    Parameters:
      `option` - the option.
    Returns:
      Values of the argument if option is set, and has an argument, otherwise null.
    Since:
      1.5.0

  - ### getOptionValues

    public String[] getOptionValues(OptionGroup optionGroup)
    Gets the array of values, if any, of an option group.
    Parameters:
      `optionGroup` - the option group.
    Returns:
      Values of the argument if option group is selected, and has an argument, otherwise null.
    Since:
      1.9.0

  - ### getOptionValues

    public String[] getOptionValues(String optionName)
    Gets the array of values, if any, of an option.
    Parameters:
      `optionName` - string name of the option.
    Returns:
      Values of the argument if option is set, and has an argument, otherwise null.

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(char optionChar) throws ParseException
    Gets a version of this `Option` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `optionChar` - the name of the option.
    Returns:
      the value parsed into a particular object or null if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.5.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(char optionChar, Supplier<T> defaultValue) throws ParseException
    Gets a version of this `Option` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `optionChar` - the name of the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the value parsed into a particular object or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.7.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(char optionChar, T defaultValue) throws ParseException
    Gets a version of this `Option` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `optionChar` - the name of the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the value parsed into a particular object or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.7.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(Option option) throws ParseException
    Gets a version of this `Option` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `option` - the option.
    Returns:
      the value parsed into a particular object or null if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.5.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(Option option, Supplier<T> defaultValue) throws ParseException
    Gets a version of this `Option` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `option` - the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the value parsed into a particular object or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.7.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(Option option, T defaultValue) throws ParseException
    Gets a version of this `Option` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `option` - the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the value parsed into a particular object or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.7.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(OptionGroup optionGroup) throws ParseException
    Gets a version of this `OptionGroup` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `optionGroup` - the option group.
    Returns:
      the value parsed into a particular object or null if no option in the OptionGroup is set.
    Throws:
      `ParseException` - if there are problems turning the selected option value into the desired type.
    Since:
      1.9.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(OptionGroup optionGroup, Supplier<T> defaultValue) throws ParseException
    Gets a version of this `OptionGroup` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `optionGroup` - the option group.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the value parsed into a particular object or the defaultValue if no option in the OptionGroup is set.
    Throws:
      `ParseException` - if there are problems turning the selected option value into the desired type.
    Since:
      1.9.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(OptionGroup optionGroup, T defaultValue) throws ParseException
    Gets a version of this `OptionGroup` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `optionGroup` - the option group.
      `defaultValue` - the default value to return if an option is not selected.
    Returns:
      the value parsed into a particular object or the defaultValue if no option in the OptionGroup is set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.9.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(String optionName) throws ParseException
    Gets a version of this `Option` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `optionName` - the name of the option.
    Returns:
      the value parsed into a particular object or null if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.2
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(String optionName, Supplier<T> defaultValue) throws ParseException
    Gets a version of this `Option` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `optionName` - the name of the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the value parsed into a particular object or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.7.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValue

    public <T> T getParsedOptionValue(String optionName, T defaultValue) throws ParseException
    Gets a version of this `Option` converted to a particular type.
    Type Parameters:
      `T` - The return type for the method.
    Parameters:
      `optionName` - the name of the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the value parsed into a particular object or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.7.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(char optionChar) throws ParseException
    Gets a version of this `Option` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `optionChar` - the name of the option.
    Returns:
      the values parsed into an array of objects or null if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(char optionChar, Supplier<T[]> defaultValue) throws ParseException
    Gets a version of this `Option` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `optionChar` - the name of the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the values parsed into an array of objects or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(char optionChar, T[] defaultValue) throws ParseException
    Gets a version of this `Option` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `optionChar` - the name of the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the values parsed into an array of objects or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(Option option) throws ParseException
    Gets a version of this `Option` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `option` - the option.
    Returns:
      the values parsed into an array of objects or null if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(Option option, Supplier<T[]> defaultValue) throws ParseException
    Gets a version of this `Option` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `option` - the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the values parsed into an array of objects or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(Option option, T[] defaultValue) throws ParseException
    Gets a version of this `Option` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `option` - the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the values parsed into an array of objects or the defaultValue if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(OptionGroup optionGroup) throws ParseException
    Gets a version of this `OptionGroup` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `optionGroup` - the option group.
    Returns:
      the values parsed into an array of objects or null if no option in the OptionGroup is set.
    Throws:
      `ParseException` - if there are problems turning the selected option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(OptionGroup optionGroup, Supplier<T[]> defaultValue) throws ParseException
    Gets a version of this `OptionGroup` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `optionGroup` - the option group.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the values parsed into an array of objects or null if no option in the OptionGroup is set.
    Throws:
      `ParseException` - if there are problems turning the selected option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(OptionGroup optionGroup, T[] defaultValue) throws ParseException
    Gets a version of this `OptionGroup` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `optionGroup` - the option group.
      `defaultValue` - the default value to return if an option is not selected.
    Returns:
      the values parsed into an array of objects or null if no option in the OptionGroup is set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(String optionName) throws ParseException
    Gets a version of this `Option` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `optionName` - the name of the option.
    Returns:
      the values parsed into an array of objects or null if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(String optionName, Supplier<T[]> defaultValue) throws ParseException
    Gets a version of this `Option` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `optionName` - the name of the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the values parsed into an array of objects or defaultValues if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### getParsedOptionValues

    public <T> T[] getParsedOptionValues(String optionName, T[] defaultValue) throws ParseException
    Gets a version of this `Option` converted to an array of a particular type.
    Type Parameters:
      `T` - The array type for the return value.
    Parameters:
      `optionName` - the name of the option.
      `defaultValue` - the default value to return if opt is not set.
    Returns:
      the values parsed into an array of objects or defaultValues if the option is not set.
    Throws:
      `ParseException` - if there are problems turning the option value into the desired type.
    Since:
      1.10.0
    See Also:
      - `PatternOptionBuilder`

  - ### hasOption

    public boolean hasOption(char optionChar)
    Tests to see if an option has been set.
    Parameters:
      `optionChar` - character name of the option.
    Returns:
      true if set, false if not.

  - ### hasOption

    public boolean hasOption(Option option)
    Tests to see if an option has been set.
    Parameters:
      `option` - the option to check.
    Returns:
      true if set, false if not.
    Since:
      1.5.0

  - ### hasOption

    public boolean hasOption(OptionGroup optionGroup)
    Tests to see if an option has been set.
    Parameters:
      `optionGroup` - the option group to check.
    Returns:
      true if set, false if not.
    Since:
      1.9.0

  - ### hasOption

    public boolean hasOption(String optionName)
    Tests to see if an option has been set.
    Parameters:
      `optionName` - Short name of the option.
    Returns:
      true if set, false if not.

  - ### iterator

    public Iterator<Option> iterator()
    Returns an iterator over the Option members of CommandLine.
    Returns:
      an `Iterator` over the processed `Option` members of this `CommandLine`.