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 Detail

      • 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