如何从Java方法返回2个值?

如何从Java方法返回2个值?

我试图从Java方法返回2个值但我得到这些错误。这是我的代码:


// Method code

public static int something(){

    int number1 = 1;

    int number2 = 2;


    return number1, number2;

}


// Main method code

public static void main(String[] args) {

    something();

    System.out.println(number1 + number2);

}

错误:


Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - missing return statement

    at assignment.Main.something(Main.java:86)

    at assignment.Main.main(Main.java:53)


MMMHUHU
浏览 1478回答 3
3回答

万千封印

不要返回包含这两个值或使用泛型Pair类的数组,而应考虑创建一个表示要返回的结果的类,并返回该类的实例。给这个班一个有意义的名字。与使用阵列相比,这种方法的好处是类型安全,它将使您的程序更容易理解。注意:Pair这里的一些其他答案中提出的泛型类也为您提供类型安全性,但不传达结果所代表的含义。示例(不使用真正有意义的名称):final class MyResult {     private final int first;     private final int second;     public MyResult(int first, int second) {         this.first = first;         this.second = second;     }     public int getFirst() {         return first;     }     public int getSecond() {         return second;     }}// ...public static MyResult something() {     int number1 = 1;     int number2 = 2;     return new MyResult(number1, number2);}public static void main(String[] args) {     MyResult result = something();     System.out.println(result.getFirst() + result.getSecond());}

aluckdog

Java不支持多值返回。返回一组值。// Function codepublic static int[] something(){    int number1 = 1;    int number2 = 2;    return new int[] {number1, number2};}// Main class codepublic static void main(String[] args) {  int result[] = something();  System.out.println(result[0] + result[1]);}

繁花不似锦

Pair如果您确定只需要返回两个值,则可以实现泛型:public&nbsp;class&nbsp;Pair<U,&nbsp;V>&nbsp;{ &nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;first&nbsp;element&nbsp;of&nbsp;this&nbsp;<code>Pair</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;U&nbsp;first; &nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;second&nbsp;element&nbsp;of&nbsp;this&nbsp;<code>Pair</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;V&nbsp;second; &nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Constructs&nbsp;a&nbsp;new&nbsp;<code>Pair</code>&nbsp;with&nbsp;the&nbsp;given&nbsp;values. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;first&nbsp;&nbsp;the&nbsp;first&nbsp;element &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;second&nbsp;the&nbsp;second&nbsp;element &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Pair(U&nbsp;first,&nbsp;V&nbsp;second)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.first&nbsp;=&nbsp;first; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.second&nbsp;=&nbsp;second; &nbsp;&nbsp;&nbsp;&nbsp;}//getter&nbsp;for&nbsp;first&nbsp;and&nbsp;second然后让方法返回Pair:public&nbsp;Pair<Object,&nbsp;Object>&nbsp;getSomePair();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java