如何在多个类中重复使用arg4j中的重复参数?

时间:2019-07-05 19:07:43

标签: java args4j

我有一些在多个命令之间重复的数据。如何使用类对通用参数进行重复数据删除?如果我可以使用一个类,那么我也可以对其他代码进行重复数据删除。

下面提供的示例代码在我的两个命令之间重复common1和common2。

public class Job1 {
    @Option(name="-common1",usage="common1")
    public String common1;
    @Option(name="-common2",usage="common2")
    public String common2;
    @Option(name="-somethingDifferent",usage="onlyJob1HasThis")
    public String onlyJob1HasThis;


    public void run() {
        System.out.println("common1=" + common1);
        System.out.println("common2=" + common2);
        System.out.println("onlyJob1HasThis=" + onlyJob1HasThis);
        CommonUtility.doSomethingCommon(common1, common2);
        this.doSomethingDifferent(common1, common2);
    }
}

public class Job1 {
    @Option(name="-common1",usage="common1")
    public String common1;
    @Option(name="-common2",usage="common2")
    public String common2;
    @Option(name="-onlyJob2HasThis",usage="onlyJob2HasThis")
    public String onlyJob2HasThis;

    public void run() {
        System.out.println("common1=" + common1);
        System.out.println("common2=" + common2);
        System.out.println("onlyJob2HasThis=" + onlyJob2HasThis);
        CommonUtility.doSomethingCommon(common1, common2);
        this.doSomethingDifferent(common1, common2);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以将所有重复的内容汇总为一个以','为分隔符的参数。然后,使用String.split进行解析。

您还可以使用StringArrayOptionHandler.class作为处理程序。请参阅 Multiple args with arg4j