使用' new Class()'进行方法签名作为参数

时间:2017-08-19 17:47:28

标签: java methods parameters signature

我看到一行代码,我不知道该方法的签名是什么样的。我在网上搜索了一些例子和解释,但没有找到。

代码行:

Circle sum = Circle.add(new Circle(), new Circle());

我想知道add方法的签名是如何使用' new Circle()'作为参数。

3 个答案:

答案 0 :(得分:4)

在不知道此API的情况下,您可以使用以下提示:

  • 此方法接收类型Circle的两个参数(或更多...),并返回类型为Circle的对象。
  • 可以通过Circle.add(...)访问该方法,因此它必须是static方法

因此,此方法的签名类似于:

public static Circle add(Circle c1, Circle c2);

public static Circle add(Circle... circles);

(方法的访问修饰符可以不是public

答案 1 :(得分:1)

签名可能是:

add(Circle, Circle)

new Circle()是no-params构造函数调用。

答案 2 :(得分:1)

因为它采用相同的对象Circle对象,我还建议它可以使用array Circle并最终返回Circle对象,如下所示:

public class Circle{

    public Circle() {
    }

    public static Circle add(Circle...circles){
        Circle c = ...;
        //do soemthing
        return c;
    }
}

或者只是你的班级conscructor可以这样服用两个Circle

public class Circle{

    public static Circle add(Circle c1, Circle c2){
        Circle c = ...;
        //do soemthing
        return c;
    }
}