多输入java的方法
我有一个接口,我想在接口中声明一个方法,这样它可以接受任意数量的对象作为输入 大概是这样的:多输入java的方法,java,interface,Java,Interface,我有一个接口,我想在接口中声明一个方法,这样它可以接受任意数量的对象作为输入 大概是这样的: interface Implementable{ public ReturnObj doIt(objects ....); } 请告知在您的情况下,正确的语法是: interface Implementable{ public ReturnObj doIt(Object... objs); } 可以找到var-arg方法的官方文档 我正要问varargs和传递数组之间的区别, Va
interface Implementable{
public ReturnObj doIt(objects ....);
}
请告知在您的情况下,正确的语法是:
interface Implementable{
public ReturnObj doIt(Object... objs);
}
可以找到var-arg方法的官方文档
我正要问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声明时,两个方法调用都将编译并等效。在您的情况下,正确的语法是:
interface Implementable{
public ReturnObj doIt(Object... objs);
}
可以找到var-arg方法的官方文档
我正要问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声明时,两个方法调用都将编译并等效。传递一个数组:
public ReturnObj doIt(Object[] input);
或者使用等效的varargs表达式
public ReturnObj doIt(Object... input);
传递数组:
public ReturnObj doIt(Object[] input);
或者使用等效的varargs表达式
public ReturnObj doIt(Object... input);
interface Implementable{
public ReturnObj doIt(Object... object);
}
或者(我更喜欢,尤其是在Web服务设计中):
interface Implementable{
public ReturnObj doIt(Object... object);
}
或者(我更喜欢,尤其是在Web服务设计中):
您忘了问一个问题,但假设您想知道如何声明一个采用可变参数数的方法,请查看以下链接: 是的
interface Implementable{
public ReturnObj doIt(Object... objects);
}
您忘了问一个问题,但假设您想知道如何声明一个采用可变参数数的方法,请查看以下链接: 是的
interface Implementable{
public ReturnObj doIt(Object... objects);
}
public ReturnObj doIt(Object…o)代码>应该可以工作。请看@aioobe:这是一个很好的编辑:D“想要”我没有完成我的问题。没有检查,我按下了按钮。我正要问varargs和传递数组之间的区别,我得到了答案。。。感谢大家public ReturnObj doIt(Object…o)代码>应该可以工作。请看@aioobe:这是一个很好的编辑:D“想要”我没有完成我的问题。没有检查,我按下了按钮。我正要问varargs和传递数组之间的区别,我得到了答案。。。多亏了你们所有人,嗯,我不会说它们是等价的。@aioobe-让我们说:在这个简单的例子中,它们是等价的。langspec如果最后一个形式参数是T类型的变量arity参数,则可以将其定义为T[]True类型的形式参数,但在方法调用的存在下,例如o.doIt()
一个有效,另一个无效……嗯,我不想说它们是等价的。@aioobe-比如说:在这个简单的示例中,他们是。langspec如果最后一个形式参数是T类型的变量arity参数,则可以考虑定义T[]True类型的形式参数,但在方法调用的存在下,例如o.doIt()
一个有效,另一个无效。。。