如何从java中的POJO类返回多个东西

时间:2016-12-25 07:32:53

标签: java pojo

我可以使用控制台输出获得输出,如下所示。

true
false
{2=s, 3=h ,..}

这两个布尔值和哈希映射我想要返回它们,这样每当我点击服务它就会显示在浏览器上。 如果我使用return语句,那么我只能返回一件事 我怎么能归还这个组合?请用全班或例子来解释。

我使用新的POJO来获取返回的值,但我对此非常困惑。

package com.vishal;

import java.util.HashMap;

import javax.ws.rs.core.Response;

public class DiffResponse {

    private boolean l = false;
    private boolean c = false;

    public HashMap<Integer, String> hm = new HashMap<Integer, String>();

    public DiffResponse setResponse(boolean l, boolean c,
        HashMap<Integer, String> hm) {
        this.l = l;
        this.c = c;
        this.hm = hm;

        return new DiffResponse();

    }}

这是服务

@POST
@Path("/compare/id")

public void delt`enter code here`a() {

    String s1 = al.get(0);
    String s2 = al.get(1);

    String s = null;
    boolean l = false;
    boolean c = false;

    if (s1.length() == s2.length())
        l = true;
    al.clear();
    if (s1.equals(s2))
        c = true;
    al.clear();

    DiffResponse DF = new DiffResponse();

    char[] c1 = s1.toCharArray();
    char[] c2 = s2.toCharArray();
    int minLength = Math.min(c1.length, c2.length);

    for (int i = 0; i < minLength; i++) {

        if (c1[i] == c2[i]) {
            continue;
        } else {

            s = Character.toString(c2[i]); DF.hm.put(i, s);

        }

    }
    al.clear();
    System.out.println(l);
    System.out.println(c);
    System.out.println(DF.hm);
    DF.setResponse(l, c, DF.hm);  //this output to be displayed using return
    DF.hm.clear();}}

我想知道如何将这三个输出结合起来。

1 个答案:

答案 0 :(得分:0)

Java没有“元组类型”,您可以在其中返回多个内容。

2个想法:

  • 返回一个充当'复合'
  • 的类/数组
  • 传递一个类/一个数组并通过此参数
  • 返回它

代码可以是例如

public MyReturnValue foo() {
    ...
    return new MyReturnValue(x,y,z)
}

public Object[] foo() {
    ...
    return new Object[] {x,y,z}
}

public void foo(MyReturnValue valueToSet) {
    ...
    valueToSet.setXYZ(x,y,z)
}

public void foo(Object[] valueToSet) {
    ...
    valueToSet.[0] = x;
    valueToSet.[1] = y;
    valueToSet.[2] = z;
}