如何从java函数返回两个不同类型的值:仅用于dummies



我搜索了这个主题并找到了答案,但作为一个java假人,我并没有真正理解所有内容,因此我试图将我找到的最佳答案执行到一个小例子中:

package return2valuesofdifftype;
public class Return2ValuesOfDiffType {
    public static void main(String[] args) {
        System.out.println("started");
        String strHere = "nothing happened";
        int iHere = -5;
        Method myM = new Method();
        ReturningValues myRV = new ReturningValues(strHere, iHere);
        myRV = myM.method(5, 10);   //should return a RV holding the string "correct" and the integer 1
    //so far so good (i hope), but how to get this string and integer out of RV ???
    System.out.println("string = "+strHere+" ,en i = "+iHere);
    }
}
package return2valuesofdifftype;
public final class ReturningValues {
    private final String value;
    private final int index;
    public ReturningValues(String value, int index) {
        this.value = value;
        this.index = index;
    }   
}
package return2valuesofdifftype;
public class Method {
    public ReturningValues method(int five, int ten) {
        String str="";
        int i=-1;
        if(five==5){str="correct";}
        else{str="wrong";}
        if(ten==10){i=1;}
        else{i=0;}
        ReturningValues rv = new ReturningValues(str, i);
        return rv;
    } 
} 

我的问题:如何将这个整数和字符串从RV中取出?非常感谢!dad

添加getter方法是一种方法。。。
public final class ReturningValues 
{
    private final String value;
    private final int index;
    public ReturningValues( String value, int index ) 
    {
        this.value = value;
        this.index = index;
    }   
    public String getString()
    {
        return value;
    }
    public String getInteger()
    {
        return index;
    }
}

另一种方法是更改属性对公众的可见性。

public final class ReturningValues 
{
    public final String value;
    public final int index;
    public ReturningValues( String value, int index ) 
    {
        this.value = value;
        this.index = index;
    }   
}

为ReturningValues实现中的两个变量提供getter,如下所示:

public String getValue() {
    return value;
}
public int getIndex() {
    return index;
}

然后您可以调用myRV.getValue();或myRV.getIndex();