浅析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