简体   繁体   中英

Return multiple variables from single method with different data types in java

I am new at java . I have method witch contain some variables with different data type ie String and Array

            pNumber=rs.getString("pNumber");
            userName=rs.getString("userName");
            simOperater=rs.getString("simOperater");
            AdharNumber=rs.getString("AdharNumber");
            rechargeAmount[i]=rs.getString("rechargeAmount");
            activeDate[i]=rs.getString("activeDate");
            plainDeatils[i]=rs.getString("plainDeatils");

and I want to return all the variables from single method in java so what approach should I use please help

just return a response object

public class MyResponse {
public String pNumber;
public String userName;
//....
}

usage:

public MyResponse yourMethod() {
MyResponse myResponse = new MyResponse();
myResponse.pNumber=rs.getString("pNumber");
myResponse.userName=rs.getString("userName");
//...
return myResponse;
}

If you don't want to write more lines, you can also set the return type of your method to Object and return your variable as you normally would, but then cast the returned object into the right type as it was before.

eg

class test {
    static Object test_return(int which) {
        String s = "This is a string";
        int i = 100;

        if(which == 0) {
            return s;
        } else {
            return i;
        }
    }

    public static void main(String args[]) {
        String s = (String) test_return(0);
        int i = (int) test_return(1);
                
        System.out.println("String: " + s + "\nint: " + i);
    }
}

output:

String: This is a string
int: 100

edit: since you are new to java, you might not understand how types exactly work here. so I would suggest you read this and this to learn more about autoboxing and unboxing

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM