当前位置: 代码迷 >> J2EE >> Java 函数返回值修改解决方法
  详细解决方案

Java 函数返回值修改解决方法

热度:77   发布时间:2016-04-17 23:11:00.0
Java 函数返回值修改
现在假设有一个类Class A{
public static get_data Int (){
  return a;
}
}

如果在class B 调用get_data方法得到a,并且在class B中对a做一些处理,如何使B中处理完的a使A中的a也跟着改变
其实就是想问如何修改静态方法的返回值
------解决思路----------------------
把你所需求的a变成成员变量(注意静态的方法只能调用静态的成员变量)
因为静态的本来就是唯一的一份
所以它直接会被改变
------解决思路----------------------
引用:
对不起大神,我的问题描述有误啊,其实是这样的,getdata方法可以不是静态的,他功能主要是得到一个返回值(int b),我想在classA中用一个成员变量把getdata的返回值给保存起来(比如int a=b),并且把a留给classB调用,并且classB中对a做一些处理完了之后我希望classA的a也变为classB中对a处理完之后的结果,其实就是希望classA中a随着调用他的方法处理结果而改变。求示例代码


你的要求就是引用传递的要求,java中没有引用传递,也就是不能传递基本类型的地址。而对于C#之类的,有一个ref 关键字,他可以把变量改为引用传递,也就是你说的一个地方改变值,另一个地方也会得到修改后的值。
但是也是可以实现的,因为对象变量保存的地址,虽然他不是引用传递,但是赋值的时候就是赋值的地址,虽然改变这个变量本身没用,但是可以改变这个对象内的属性
简单得说就是:
使用一个对象封装你需要传递的数据,进行数据传递

public class Test {

public static void main(String[] args) {
MyInt myint = new MyInt();
change(myint);
System.out.println(myint.num);
}

public static void change(MyInt num){
num.num = 10;
}

}
class MyInt{
public int num;
}

当然最好再弄个getter和setter