亲切的问候...
我用 PHP 实现了这个。
function Func0($sString1,$iInteger0,$sString2) {
$OrigArgs = func_get_args();//The arguments
Func1($OrigArgs,1);
}
function Func1($OriginalArgs,$AddedArg) {
$NumFirstArgs = size($OriginalArgs);
if ($NumFirstArgs>3) {
print("you have more than 3 arguments originally");
}
}
我需要将上面的代码翻译成Java
我需要在java中捕获最初的参数/参数并在其他函数中使用它们......
如您所见,根据 Java,参数可以具有不同的类型..
public void Func0(String sString1,int iInteger0,String sString2) {
Object[] OrigArgs = func_get_args();//The arguments
Func1(OrigArgs,1);
}
public void Func1(Object[] OriginalArgs,int AddedArg) {
int NumFirstArgs = OriginalArgs.length;
if (NumFirstArgs>3) {
System.out.println("you have more than 3 arguments originally");
}
}
谢谢,
最佳答案
如果您有像 Object... foo
这样的最后一个参数,那么 foo
将是所有可变参数的数组,即除非可变参数之外的所有“其余”参数。换句话说,您可以将函数声明为
public void Func0(String sString1, int iInteger0, String sString2, Object... more)
但是more
将只包含第三个之后的参数。
为了最接近地匹配您的原始代码,您可以这样做(sString1
、iInteger0
和 sString2
不再是参数,如果需要,您必须手动提取它们):
public void Func0(Object... OrigArgs) {
Func1(OrigArgs,1);
}
public void Func1(Object[] OriginalArgs,int AddedArg) {
int NumFirstArgs = OriginalArgs.length;
if (NumFirstArgs>3) {
System.out.println("you have more than 3 arguments originally");
}
}
关于Java 转换 func_get_args PHP、varargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17354913/