Как отправить произвольные числа и типы или аргументы - PullRequest
0 голосов
/ 04 ноября 2019

У меня очень простой вопрос по Java. Чтобы отправить произвольное количество аргументов от одного метода другому, мы можем использовать varargs. Однако это может работать только в том случае, если аргументы имеют одинаковый тип. Мне интересно, есть ли способ отправить произвольное число и типы аргументов из одного метода в другой. Например, я хотел бы, чтобы метод сначала отправлял 5 аргументов смеси типа int и String. Позже, этот же метод должен быть в состоянии отправить 7 аргументов смеси типов Boolean, String, char и double. Есть ли способ выполнить такую ​​задачу? Спасибо.

1 Ответ

2 голосов
/ 04 ноября 2019

Мне интересно, есть ли способ отправить произвольное число и типы аргументов из одного метода в другой.

Вы можете использовать Object... args:

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

int, char, double и другие аргументы примитивного типа будут помещены в свои обертки объектов (Integer, Character, Double).

Живой пример

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);
    }
}
...