浅析java中Integer传参方式的问题_Java教程-查字典教程网
浅析java中Integer传参方式的问题
浅析java中Integer传参方式的问题
发布时间:2016-12-28 来源:查字典编辑
摘要: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,尽量避免

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Java学习
    热门Java学习
    编程开发子分类