Java JLine2:调用ArgumentDelimiter时获得NPE

Java JLine2:调用ArgumentDelimiter时获得NPE,java,autocomplete,jline,Java,Autocomplete,Jline,这是我的密码 ConsoleReader console = new ConsoleReader(); Completer quit = new StringsCompleter("quit"); Completer subcommands = new ArgumentCompleter(new StringsCompleter("with-number"), new StringsCompleter("with-string")); Completer add = new Ar

这是我的密码

ConsoleReader console = new ConsoleReader();    
Completer quit = new StringsCompleter("quit");    
Completer subcommands = new ArgumentCompleter(new StringsCompleter("with-number"), new StringsCompleter("with-string"));
Completer add = new ArgumentCompleter(new StringsCompleter("add"), subcommands);
Completer delete = new ArgumentCompleter(new StringsCompleter("delete"), subcommands);    
Completer operations = new ArgumentCompleter(add, delete);    
Completer aggregated = new AggregateCompleter(new StringsCompleter("run"), quit, operations);
console.addCompleter(aggregated);
当我尝试完成该命令时,会出现此错误

Exception in thread "main" java.lang.NullPointerException
        at jline.console.completer.ArgumentCompleter$AbstractArgumentDelimiter.delimit(ArgumentCompleter.java:283)
        at jline.console.completer.ArgumentCompleter.complete(ArgumentCompleter.java:116)
        at jline.console.completer.ArgumentCompleter.complete(ArgumentCompleter.java:152)
        at jline.console.completer.AggregateCompleter$Completion.complete(AggregateCompleter.java:121)
        at jline.console.completer.AggregateCompleter.complete(AggregateCompleter.java:80)
        at jline.console.ConsoleReader.complete(ConsoleReader.java:3261)
        at jline.console.ConsoleReader.readLine(ConsoleReader.java:2621)
        at jline.console.ConsoleReader.readLine(ConsoleReader.java:2269)
        at com.test.jline.JLineExample.main(JLineExample.java:41)
代码预期行为:

> run [TAB]
  add delete
> run del[TAB]ete [TAB]
  with-number with-string
如何修复代码以实现这种行为

PS


我使用了
JLine 2.12

您是否尝试将所有
参数完成器
更改为
聚合完成器
?是。我也犯了同样的错误。