gpt4 book ai didi

Java 可变参数函数参数

转载 作者:IT老高 更新时间:2023-10-28 20:22:12 25 4
gpt4 key购买 nike

我有一个接受可变数量参数的函数:

foo (Class... types);

我在其中获得了一定数量的类类型。接下来,我想要一个函数

bar( ?? )

这也将接受可变数量的参数,并且能够验证变量是否与 foo

我该怎么做?

编辑:澄清一下,调用可能是:

foo (String.class, Int.class);
bar ("aaa", 32); // OK!
bar (3); // ERROR!
bar ("aa" , "bb"); //ERROR!

另外,foo 和 bar 是同一个类的方法。

最佳答案

类似这样的:

private Class<?>[] types;

public void foo(Class<?>... types)
{
this.types = types;
}

public boolean bar(Object... values)
{
if (values.length != types.length)
{
System.out.println("Wrong length");
return false;
}
for (int i = 0; i < values.length; i++)
{
if (!types[i].isInstance(values[i]))
{
System.out.println("Incorrect value at index " + i);
return false;
}
}
return true;
}

例如:

test.foo(String.class, Integer.class);
test.bar("Hello", 10); // Returns true
test.bar("Hello", "there"); // Returns false
test.bar("Hello"); // Returns false

(显然您会想要更改结果的报告方式...可能对无效数据使用异常。)

关于Java 可变参数函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2635229/

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