Interface CommandLine.ITypeConverter<K>

Type Parameters:
K - the type of the object that is the result of the conversion
Enclosing class:
CommandLine

public static interface CommandLine.ITypeConverter<K>

When parsing command line arguments and initializing fields annotated with @Option or @Parameters, String values can be converted to any type for which a ITypeConverter is registered.

This interface defines the contract for classes that know how to convert a String into some domain object. Custom converters can be registered with the CommandLine.registerConverter(Class, ITypeConverter) method.

Java 8 lambdas make it easy to register custom type converters:

  commandLine.registerConverter(java.nio.file.Path.class, s -> java.nio.file.Paths.get(s));
  commandLine.registerConverter(java.time.Duration.class, s -> java.time.Duration.parse(s));

Built-in type converters are pre-registered for the following java 1.5 types:

  • all primitive types
  • all primitive wrapper types: Boolean, Byte, Character, Double, Float, Integer, Long, Short
  • any enum
  • java.io.File
  • java.math.BigDecimal
  • java.math.BigInteger
  • java.net.InetAddress
  • java.net.URI
  • java.net.URL
  • java.nio.charset.Charset
  • java.sql.Time
  • java.util.Date
  • java.util.UUID
  • java.util.regex.Pattern
  • StringBuilder
  • CharSequence
  • String

  • Method Summary

    Modifier and Type
    Method
    Description
    convert(String value)
    Converts the specified command line argument value to some domain object.
  • Method Details

    • convert

      K convert(String value) throws Exception

      Converts the specified command line argument value to some domain object.

      Parameters:
      value - the command line argument String value
      Returns:
      the resulting domain object
      Throws:
      Exception - an exception detailing what went wrong during the conversion