gpt4 book ai didi

java - 如何将包含所需参数的列表传递给函数

转载 作者:行者123 更新时间:2023-12-01 16:41:58 24 4
gpt4 key购买 nike

所以我有一个对象,我们称之为 myObject

这是我的对象的构造函数

private static class myObject {
public myObject(int argA) {
this.argA = argA;
}

public myObject(int argA, boolean argB) {
this.argA = argA;
this.argB = argB;
}

public myObject(int argA, int argC, int argD) {
this.argA = argA;
this.argC = argC;
this.argD = argD;
}

public myObject(int argA, String argE) {
this.argA = argA;
this.argE = argE;
}


public int argA = 1;
public boolean argB;
public int argC = 4;
public int argD = 5;
public String argE;

现在我想创建 myObject 的实例,但我收到了它的参数列表。例如我给出了

List objectParams = Arrays.asList(1,3,4)
myObject newObjectWithTheseParameters = ?;

所以这应该使用第三个构造函数,因为它有 3 个整数。

我还可以获得 2 个参数的列表或 1 个参数的列表。

如何转换此列表以供我的构造函数接收?

最佳答案

如果您总是想使用第三个构造函数(带有 3 个 int),您可以简单地使用以下内容:

myObject newObjectWithTheseParameters = new myObject((int) objectParams.get(0), (int) objectParams.get(1), (int) objectParams.get(2));.

否则,您将需要测试列表的结构以确定使用哪个构造函数:

myObject newObjectWithTheseParameters;
if (objectParams.size() == 1)
newObjectWithTheseParameters = new myObject((int) objectParams.get(0));
else if (objectParams.size() == 2 && objectParams.get(1) instanceof Boolean)
newObjectWithTheseParameters = new myObject((int) objectParams.get(0), (boolean) objectParams.get(1));
else if (objectParams.size() == 3)
newObjectWithTheseParameters = new myObject((int) objectParams.get(0), (int) objectParams.get(1), (int) objectParams.get(2));
else if (objectParams.size() == 2 && objectParams.get(2) instanceof String)
newObjectWithTheseParameters = new myObject((int) objectParams.get(0), (String) objectParams.get(1));
else
// Handle invalid list.

关于java - 如何将包含所需参数的列表传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61847104/

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