Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中作为参数传递引用_Java_Android_Pass By Reference - Fatal编程技术网

Java 在android中作为参数传递引用

Java 在android中作为参数传递引用,java,android,pass-by-reference,Java,Android,Pass By Reference,我是java/android的新手。我是一名c/c++开发人员。我可以知道如何在android中作为参数传递引用吗。下面显示了一个示例c代码 void main() { int no1 = 3, no2 = 2, sum = 0; findsum( no1, no2, sum ); printf("sum=%d", sum ); } void findsum( int no1, int no2, int& sum ) { sum = no1 + no2; } 请给我一

我是java/android的新手。我是一名c/c++开发人员。我可以知道如何在android中作为参数传递引用吗。下面显示了一个示例c代码

void main()
{
  int no1 = 3, no2 = 2, sum = 0;
  findsum( no1, no2, sum );
  printf("sum=%d", sum );
}

void findsum( int no1, int no2, int& sum )
{
  sum = no1 + no2;
}
请给我一个解决方案


谢谢

您不能在Java中传递int作为引用
int
是主要类型,只能通过值传递

如果仍然需要将int变量作为引用传递,则可以将其包装在可变类中,例如int数组:

void findsum( int no1, int no2, int[] sum )
{
  sum[0] = no1 + no2;
}
无论如何,我强烈建议您重构代码,使其更面向对象,例如:

class SumOperation {
   private int value;

   public SumOperation(int no1, int no2) {
      this.value = no1 + no2;
   }

   public int getReturnValue() { return this.value; }
}

Java中没有传递引用。

我就是这样解决这个问题的:

// By using a wrapper class.
// This also works with Class objects.
class IntReturn {
    public int val;
}

// For example:
class StringReturn {
    public String val;
}

class Main {
    public static void main (){
        IntReturn iRtn = new IntReturn();
        
        if(tryAdd(2, 3, iRtn)){
            System.out.println("tryAdd(2, 3): " + iRtn.val);
        }
    }

    public static boolean tryAdd(final int a, final int b, final IntReturn iRtn){
        iRtn.val = a + b;

        return true;  // Just something to use return
    }
}

我有一个个人图书馆,里面有这类课程。Lambda是这些类的另一个原因,因为您需要一个“final”变量来从Lambda中获取值,而不是通过return语句。

如何在不使用return的情况下从方法中检索值?如果字符串为,则为String[]value