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

时间:2023-10-27 03:35:43 

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,integer
0
投稿

猜你喜欢

  • 在实践中了解Java反射机制应用

    2021-06-29 02:40:14
  • Android中在GridView网格视图上实现item拖拽交换的方法

    2022-07-13 01:26:04
  • C#多线程之线程同步WaitHandle

    2022-08-10 10:16:12
  • Android ListView适配器(Adapter)优化方法详解

    2023-08-09 21:44:32
  • Android Shape属性创建环形进度条

    2021-08-02 09:03:08
  • Spring生命周期回调与容器扩展详解

    2023-04-05 16:26:31
  • Android单选按钮对话框用法实例分析

    2023-03-27 17:10:52
  • Java 使用Docker时经常遇到的五个问题

    2023-12-10 07:20:21
  • springboot返回图片流的实现示例

    2023-11-23 17:30:08
  • 详解C++ bitset用法

    2022-10-30 08:57:16
  • Android UI设计系列之自定义Dialog实现各种风格的对话框效果(7)

    2023-11-18 14:26:37
  • 解读JSONArray删除元素的两种方式

    2022-10-31 11:40:50
  • maven <repositories>标签和<pluginRepositories>标签的使用

    2022-09-26 01:06:33
  • 盘点MQ中的异常测试

    2022-05-06 07:39:24
  • 自定义对象作为HashMap的Key问题

    2022-11-06 02:52:30
  • IntelliJ IDEA优化配置的实现

    2023-01-01 03:29:55
  • 关于访问后端接口报404错误问题的解决方法(全网最细!)

    2022-02-13 23:18:40
  • Android 自定义闪屏页广告倒计时view效果

    2021-10-13 16:26:39
  • Windows下C#的GUI窗口程序中实现调用Google Map的实例

    2022-01-10 10:31:07
  • C#实现将聊天数据发送加密

    2022-09-10 05:56:35
  • asp之家 软件编程 m.aspxhome.com