在scala中不可能连续调用Java类的静态方法

时间:2017-12-01 01:27:28

标签: scala

类:org.apache.commons.cli.OptionBuilder

罐:公地-CLI-1.2.jar

jdk:1.8

在Java中:

OptionBuilder.withArgName("abc").withDescription("bcd");

已成功编译

Scala中的相同代码:

OptionBuilder.withArgName("abc").withDescription("bcd")

错误:(7,38)值withDescription不是org.apache.commons.cli.OptionBuilder的成员     OptionBuilder.withArgName( “ABC”)。withDescription( “BCD”)

1 个答案:

答案 0 :(得分:2)

不幸的是,您必须将其用作:

def main(args: Array[String]): Unit = {
      OptionBuilder.withArgName("abc")
      OptionBuilder.withDescription("bcd")
    }

这是因为OptionBuilder中没有带有描述的实例方法,只有静态方法。由于withDescription是一个静态方法,你显然需要在类上调用它,而不是在类的实例上调用它。

private static OptionBuilder instance = new OptionBuilder();
public static OptionBuilder withArgName(String name)
    {
        OptionBuilder.argName = name;

        return instance;
    }



 public static OptionBuilder withDescription(String newDescription)
    {
        OptionBuilder.description = newDescription;

        return instance;
    }