如何发送任意数字和类型或争论

问题描述 投票:0回答:1

我有一个非常基本的Java问题。为了将任意数量的参数从一种方法发送到另一种方法,我们可以使用varargs。但是,这仅在参数为相同类型时才有效。我想知道是否有任何方法可以将任意数量和类型的参数从一种方法发送到另一种方法。例如,我想要一种首先发送5个intString类型混合的参数的方法。后来,此相同方法需要能够发送BooleanStringchardouble类型的混合的7个论点。有什么办法可以执行这样的任务?谢谢。

java variadic-functions
1个回答
2
投票

我想知道有什么方法可以将任意数量和类型的参数从一种方法发送到另一种方法。

您可以使用Object... args

void method(Object... args) {
    // ...
}

[intchardouble和其他原始类型的参数将被包装在它们的对象包装中(IntegerCharacterDouble)。

Live Example

import java.util.Arrays;

class Example {
    void method(Object... args) {
        System.out.println(Arrays.toString(args));
    }
    public static void main(String[] args) {
        Example e = new Example();
        e.method(1, "foo", 2, "bar", 3);
        e.method(true, "foo", 'c', 'd', new Boolean(false), false);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.