Package picocli
Interface CommandLine.IFactory
-
- Enclosing class:
- CommandLine
public static interface CommandLine.IFactoryFactory for instantiating classes that are registered declaratively with annotation attributes, likeCommandLine.Command.subcommands(),CommandLine.Option.converter(),CommandLine.Parameters.converter()andCommandLine.Command.versionProvider(). The factory is also used to instantiate theCollectionorMapimplementation class for multi-value options and positional parameters with an abstract type, likeList<String>.You may provide a custom implementation of this interface. For example, a custom factory implementation could delegate to a dependency injection container that provides the requested instance.
Custom factory implementations should always fall back to the default factory if instantiation failed. For example:
class MyFactory implements IFactory { private final ApplicationContext applicationContext = getAppContext(); public <T> T create(Class<T> cls) throws Exception { try { applicationContext.getBean(cls); } catch (Exception ex) { CommandLine.defaultFactory().create(cls); } } }Tip: custom factory implementations that have resources that need to be closed when done should consider implementing
java.lang.AutoCloseableorjava.io.Closeable. This allows applications to use the following idiom for configuring picocli before running their application:public static void main(String[] args) { int exitCode = 0; try (MyFactory factory = createMyFactory()) { exitCode = new CommandLine(MyClass.class, factory) .setXxx(x) // configure the picocli parser... .execute(args); } System.exit(exitCode); }
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <K> Kcreate(java.lang.Class<K> cls)Returns an instance of the specified class.
-
-
-
Method Detail
-
create
<K> K create(java.lang.Class<K> cls) throws java.lang.ExceptionReturns an instance of the specified class.- Type Parameters:
K- the type of the object to return- Parameters:
cls- the class of the object to return- Returns:
- the instance
- Throws:
java.lang.Exception- an exception detailing what went wrong when creating or obtaining the instance
-
-