Java语法expression.new MyClass

时间:2014-04-22 11:38:04

标签: java

有这个功能

public ParameterMethodParameterBuilder withParameter() {
        MethodParameter parameter = new MethodParameter();

  return withParameter(parameter).new ParameterMethodParameterBuilder(parameter);
}

以下表达式的含义是什么

withParameter(parameter).new ParameterMethodParameterBuilder(parameter)

4 个答案:

答案 0 :(得分:3)

语法obj.new Inner()创建并返回链接到封装类的实例Inner的内部类(*)obj的实例。

当声明内部类时,您需要一个封装类的实例来实例化内部类。您面临的语法正是出于此目的。

以下是最简单的示例:

public class MainClass {
    public class InnerClass {
    }
}

您将以这种方式实例化InnerClass

MainClass mc = new MainClass();
mc.new InnerClass();

(*)inner class = 非静态嵌套

答案 1 :(得分:2)

ParameterMethodParameterBuilder是任何返回类型withParameter(MethodParameter parameter)方法的内部类。

您需要创建该内部类ParameterMethodParameterBuilder的新对象,该对象具有withParameter(parameter)方法返回的外部引用

答案 2 :(得分:0)

它创建了一个嵌套类的新实例:

public class MethodParameter() {

    public class ParameterMethodParameterBuilder(/* ... */) {

        //...

    }

    //...
}

答案 3 :(得分:0)

withParameter(parameter)方法返回MethodParameter实例,您正在尝试创建

ParameterMethodParameterBuilder静态内部类的对象,

所以语法就像这样 MethodParameter.new ParameterMethodParameterBuilder (parameter)创建内部静态类对象

让我知道任何问题。