gpt4 book ai didi

java - 接收具有相同参数的整数或整数列表

转载 作者:行者123 更新时间:2023-12-02 08:51:38 24 4
gpt4 key购买 nike

我有一个问题。我正在写一个restful API。可以向组添加项目或从组中删除项目。为此,我必须向特定 URL 发送 POST 请求。请求如下所示。这已经有效了。但我有一个让我绝望的要求。应该可以在 JSON 请求中发送整数或整数列表。但参数名称应该相同。

{
"add": "10",
"remove": "100"
}

但是这个请求应该是可以的。

{
"add": [
10,
11,
12,
13
],
"remove": "100"
}

我尝试使用不同的 setter 来解决我的问题,如下所示。

public class GroupDiff {
// TODO
private List<Integer> add = new ArrayList<Integer>();
private List<Integer> remove = new ArrayList<Integer>();

public List<Integer> getAdd() {
return add;
}
public void setAdd(List<Integer> add) {
this.add = add;
}
public void setAdd(int add) {
List<Integer> list = new ArrayList<Integer>();
list.add(add);
this.add = list;
}
public List<Integer> getRemove() {
return remove;
}
public void setRemove(List<Integer> remove) {
this.remove = remove;
}

public void setRemove(int remove) {
List<Integer> list = new ArrayList<Integer>();
list.add(remove);
this.remove = list;
}

但我总是收到以下异常:

Caused by: java.lang.IllegalArgumentException: Conflicting setter definitions for property "add": net.erouting.type.GroupDiff#setAdd(1 params) vs net.erouting.type.GroupDiff#setAdd(1 params)

我的问题是:我怎样才能解决我的问题,通过向我的服务器发出 JSON 请求,既可以是整数也可以是整数列表。

我们正在使用 Spring 和 Hibernate。

希望你能帮助我。

最佳答案

我不擅长 JSON,但你可以尝试这个:

import java.util.ArrayList;
import java.util.List;

public class GroupDiff {
private List<Integer> addList = new ArrayList<Integer>();
private List<Integer> removeList = new ArrayList<Integer>();

public List<Integer> getAddList() {
return addList;
}

public List<Integer> getRemoveList() {
return removeList;
}

public void setAddList(int... toAdd) {
for (int i = 0; i < toAdd.length; i++) {
this.addList.add(toAdd[i]);
}
}

public void setRemoveList(int... toRemove) {
for (int i = 0; i < toRemove.length; i++) {
this.removeList.add(toRemove[i]);
}
}

public static void main(String[] args) {
GroupDiff groupDiff;

/*
* All of this calls will work good.
*/
groupDiff = new GroupDiff();
groupDiff.setAddList(10);
groupDiff.setRemoveList(100);
System.out.printf("addList=%s; removeList=%s\n",
groupDiff.addList, groupDiff.removeList);

groupDiff = new GroupDiff();
groupDiff.setAddList(10, 11, 12, 13);
groupDiff.setRemoveList(100);
System.out.printf("addList=%s; removeList=%s\n",
groupDiff.addList, groupDiff.removeList);

groupDiff = new GroupDiff();
groupDiff.setAddList(new int[]{10, 11, 12, 13});
groupDiff.setRemoveList(100);
System.out.printf("addList=%s; removeList=%s\n",
groupDiff.addList, groupDiff.removeList);
}
}

输出为:

addList=[10]; removeList=[100]
addList=[10, 11, 12, 13]; removeList=[100]
addList=[10, 11, 12, 13]; removeList=[100]

关于java - 接收具有相同参数的整数或整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14473883/

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