gpt4 book ai didi

java - 一组可变参数?

转载 作者:行者123 更新时间:2023-12-04 12:39:30 25 4
gpt4 key购买 nike

关于 Varargs ,我可以在一个小组中重复这些论点吗?

例如,我想允许用户传入:

myFunc(1, "one");
myFunc(1, "one", 2, "two");
myFunc(1, "one", 2, "two", 3, "three");

似乎不可能。但正如 docs 中提到的,在旧的实现中,可变参数实际上是一个数组。我想知道如何 人做 之前 发明了可变参数。这可能会启发我们如何实现上述场景。我们可以把我的场景看成 {int, String}...毕竟重复。

感谢您的任何输入:-)

编辑:

感谢您的所有投入!

那么,它是通过 myFunc(new wrap(1, "one"), new wrap(2, "two"), new wrap(3, "three")); 调用的吗?是旧方法吗?

编辑2:

嗯,没有。那是我困惑的错。

为了
myFunc(1);
myFunc(1, 2);
myFunc(1, 2, 3);

旧的方式应该是
myFunc(new int[]{1});
myFunc(new int[]{1, 2});
myFunc(new int[]{1, 2, 3});

据我所知,重复参数形成一个数组。它的所有参数都必须是相同的类型。以简单的方式实现上述调用应该是不可能的。出于好奇,我开始考虑运算符重载的可能性......(?)

最佳答案

在这种情况下,在我看来,为您的“对”创建一个数据结构是合适的,然后将该类型用作您方法的 vararg 参数。

public void myFunc(Pair... pairs) {}

您也可以使用 Object... ,但我认为在这种情况下没有任何优势,因为参数总是成对出现。

关于java - 一组可变参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15986453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com