java - 将参数从函数传递到 Java 中的内部函数?

标签 java function arguments

编辑:澄清一下,我想要 python 代码的 java 等价物。

如何将一个函数的所有参数传递给在该函数中调用的另一个函数。这在 Python 中可以通过以下方式实现:

def p(*args):
    print(*args)

我知道在 Java 中可以使用 Object... objects 传递多个参数 但我不知道如何通过“解包”数组将它们传递给内部函数。我正在努力完成的一个例子:

public static void printf(Objects object) {
    System.out.printf(objects)
    //I don't believe that this works, but it's the jist of what I want to do
}

有没有更好的方法来做这样的事情或更像 Java 的方法?

最佳答案

对于 System.out.printf 的特定情况,这是很有可能的。因为 printf 有一个参数列表 (String, Object...)。你可以这样做:

private static void foo(String s, Object... objs) {
    System.out.printf(s, objs);
}

您基本上可以将类型为 Object... 的参数传递给另一个需要 Object...Object[] 的方法.

但是,您不能做的是将 Object... 传递给需要 5 个 Object 的方法。

private static void foo(Object... objs) {
    bar(objs)
}

private static void bar(Object a, Object b, Object c, Object d, Object e) {

}

你必须一个一个地传递参数:

bar(objs[0], objs[1], objs[2], objs[3], objs[4]);

关于java - 将参数从函数传递到 Java 中的内部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46578022/

相关文章:

mysql - 是否可以在 mysql 函数中声明和返回多个列?

C:通过堆栈/寄存器问题返回值

c++ - 在 C++ 中将 vector 或数组转换为参数列表

java - JDialog 属性改变了行为

java - 如何更改外观顺序?

javascript - 从 iframe 访问父函数中的变量 (Javascript)

c++ - 在C++中传递函数类型的参数是什么意思?

java - 550 访问被拒绝 - 无效的 HELO 名称

java - Jackson 将对象字段误认为是 JsonTypeInfo.Id.NAME

c - 将指针传递给指针以在函数中重新分配