当前位置: 移动技术网 > IT编程>开发语言>Java > 浅析java中Integer传参方式的问题

浅析java中Integer传参方式的问题

2019年07月22日  | 移动技术网IT编程  | 我要评论
java本身都是值传递式的调用,对于对象传递的是地址值。给地址值重新赋值等于重新指向,不会影响外层。而且这里integer对象也有特殊性。其实现上可能类似复制代码 代码如下

java本身都是值传递式的调用,对于对象传递的是地址值。给地址值重新赋值等于重新指向,不会影响外层。
而且这里integer对象也有特殊性。其实现上可能类似

复制代码 代码如下:

class integer{
final int value; //一旦赋值,就不能改变。
}

这就出现:调用时传的地址值不能改变外层+对象本身又不能改变。导致这个值没法改变

解决方案很多
1、
java风格就是,单个值用返回值。return i; 外面再i=foo();赋值;多个值用数组或对象。
2、传递自己的封装类。class mutableinteger{ int value;}
3、传递专用atomicinteger原子整型对象

复制代码 代码如下:

    public static void main(string[] 参数) {     
  atomicinteger i=new atomicinteger(40);
  i.intvalue();
  system.out.println(i);
 }
    public static void change(atomicinteger i) {
     i.set(55);
}

也可以实现传递后改值 ,
推荐方案1,尽量避免

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网