多输入java的方法

时间:2011-06-30 12:42:33

标签: java interface

我有一个接口,在接口中我想声明一个方法,这样它可以将任意数量的对象作为输入。

这样的事情:

interface Implementable{
     public ReturnObj doIt(objects ....);
}

请告知

4 个答案:

答案 0 :(得分:5)

在您的情况下,正确的语法是:

interface Implementable{
    public ReturnObj doIt(Object... objs);
}

找到var-arg方法的官方文档here

  

我正要问varargs和传递数组之间的区别

Varargs被编译成数组类型的参数。唯一的区别在于vararg语法,方法调用如

doIt("hello", "world");

将编译成

doIt(new Object[] { "hello", "world" });

换句话说,给出一个声明,如

public ReturnObj doIt(Object[] objs);

你会有

doIt(new Object[] { "hello", "world" });  // works fine
doIt("hello", "world");                   // won't compile

给定var-arg声明时,两个方法调用都将编译并等效。

答案 1 :(得分:3)

传递数组:

public ReturnObj doIt(Object[] input);

或使用等效的varargs表达式

public ReturnObj doIt(Object... input);

答案 2 :(得分:1)

  1. 您首先需要了解varargs
  2. 问题是什么?
  3. 示例:

    interface Implementable{
        public ReturnObj doIt(Object... object);
    }
    

    或者(我更喜欢,尤其是在Web服务设计中):

    interface Implementable{
        public ReturnObj doIt(Object[] object);
    }
    

答案 3 :(得分:0)

您忘了提问,但假设您想知道如何声明一个采用可变数量参数的方法,请查看以下链接:

http://download.oracle.com/javase/1,5.0/docs/guide/language/varargs.html

所以它会是

interface Implementable{

         public ReturnObj doIt(Object... objects);
}