繁体   English   中英

多输入法 java

[英]Method with multiple inputs java

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

像这样的东西:

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

请指教

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

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

可在 此处找到 var-arg 方法的官方文档。

我正要问可变参数和传递数组的区别,

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 声明,但两个方法调用都将编译并且是等效的。

传递一个数组:

public ReturnObj doIt(Object[] input);

或使用等效的可变参数表达式

public ReturnObj doIt(Object... input);
  1. 您需要先了解 可变参数
  2. 问题是什么?

例子:

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

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

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

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

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

所以它会是

interface Implementable{

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM