gpt4 book ai didi

java - 获取 java.lang.IllegalArgumentException : wrong number of arguments error for below code snippet

转载 作者:行者123 更新时间:2023-12-01 22:05:18 29 4
gpt4 key购买 nike

我正在使用类 Collection 并有一行代码,如下所示。请找到如下所示的完整代码,并让我知道这段代码有什么问题,因为我收到错误:

java.lang.IllegalArgumentException: wrong number of arguments

import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class)
public class Parameterizing {
String Firstname;
String Lastname;
String Password;
int age;

public void paratemeterizing(String Firstname, String Lastname, String Password, int age) {
this.Firstname = Firstname;
this.Lastname = Lastname;
this.Password = Password;
this.age = age;
}

@Parameters
public static Collection<Object[]> getdata() {
Object[][] data = new Object[2][4];
data[0][0]= "David";
data[0][1]= "Beck";
data[0][2] = "1234";
data[0][3] = 12;
data[1][0]= "David";
data[1][1]= "Bear";
data[1][2] = "12345";
data[1][3] = 21;
return Arrays.asList(data);
}

@Test
public void doLogin() {
System.out.println(Firstname+Lastname+Password+age);
}
}

最佳答案

我的猜测是您从 getdata() 返回的数据结构的大小与被测试方法所需的参数不匹配。

我怀疑Arrays.asList()不按您期望的方式处理类型。它是使用 varargs 声明的,因此我可以调用 Arrays.asList(a)并获取包含一个元素的列表,或者我可以调用 Arrays.asList(a, b, c)并返回一个包含三个元素的列表。当 a 的类型时就会出现问题是一个数组:您想要一个包含一个数组的列表还是一个包含该数组元素的列表?这种歧义可能是问题所在(或至少是其中之一)。我会这样重写:

@Parameters
public static Collection<Object[]> getdata() {

final List<Object[]> result = new ArrayList<>();

result.add( new Object[] {"David", "Beck", "1234", 12} );
result.add( new Object[] {"David", "Bear", "12345", 21} );

return result;
}

(我不熟悉您正在使用的 JUnit 注释,因此我做出了有根据的猜测)

关于java - 获取 java.lang.IllegalArgumentException : wrong number of arguments error for below code snippet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32912644/

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