队列添加对象后,所有都变成相同的(bug)
代码背景:
定义全局变量 private object currentObj=new object();
for(i=;i<objectList.count;i++)
{
currentObj=objectList[i];
Queue.Enqueue(currentObj)
}
costomer()==>>object obj=Queue.Dequeue();
这时候发现obj都变成了最后一个对象;
分析:其实每个对象是引用地址,当每次进行currentObj=objectList[i];时,都将这个currentObj地址中的内容改变,而在队列中的每个成员都是currentObj所指向的地址,所以都是一样的。
解决方法:
1)object对象的构造函数进行重写,重写一个带参的构造函数(如下),然后currentObj=objectList[i];改为currentObj=new object(objectList[i]);
object(object obj)
{
this.x=obj.x;
this.y=obj.y;
}
2) 中间临时变量接一下,再进行入队列,其实原理是一样的就是将一个新地址加入队列,这样就不会再一样了!
队列添加对象后,所有都变成相同的(bug)的更多相关文章
- EF DBContext中DbSet中Hashset添加对象后,DataGrid UI没有刷新的问题
		使用EF4/5添加数据库视图生成DBContext,如果数据表/对象之间有M-N对应关系,EF对自动添加引用类集合,是Hashset类型.由于不是ObservableCellection类型,在引用类 ... 
- SharePoint 2013:解决添加域名后每次都需要登录的问题
		在SharePoint 2013中,当我们添加一个域名给SP后(添加域名的方法请参考此文:http://www.cnblogs.com/jianyus/archive/2013/08/10/32494 ... 
- TkMybatis添加对象后返回数据的id
		在实体类的id属性上加上下面的注解 //导入的包import javax.persistence.GeneratedValue; @GeneratedValue(generator = "J ... 
- 在MySQL或者SQLServer中,添加对象后自动返回主键到对象模型中的配置方式
		设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中.MySQL和SQLServer执行auto-generated key fiel ... 
- ***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象
		http://redis.readthedocs.org/en/latest/hash/hset.html HSET HSET key field value (存一个对象的时候key存) 将哈希 ... 
- DOM对象本身也是一个js对象,所以严格来说,并不是操作这个对象慢,而是说操作了这个对象后,会触发一些浏览器行为(转)
		一直都听说DOM很慢,要尽量少的去操作DOM,于是就想进一步去探究下为什么大家都会这样说,在网上学习了一些资料,这边整理出来. 首先,DOM对象本身也是一个js对象,所以严格来说,并不是操作这个对象慢 ... 
- 淘淘商城项目_同步索引库问题分析 + ActiveMQ介绍/安装/使用 + ActiveMQ整合spring + 使用ActiveMQ实现添加商品后同步索引库_匠心笔记
		文章目录 1.同步索引库问题分析 2.ActiveM的介绍 2.1.什么是ActiveMQ 2.2.ActiveMQ的消息形式 3.ActiveMQ的安装 3.1.安装环境 3.2.安装步骤 4.Ac ... 
- jQuery - 02. 样式表属性操作/类操作、动画、显示隐藏、滑入、淡入、停止动画、节点操作、添加对象、清空节点
		样式表属性操作.css $("div").css({'width':100,'height':100,'background':'red'}); $("div" ... 
- 拿到添加对象的id号方法
		以前Hibernate添加对象,想拿到id号的时候都是根据id排序拿到第一条 ,才知道 这样也可以 /** * @Description: 添加一个角色信息 * @ret ... 
随机推荐
- .NET Core 微服务
			github 上的资源: EshopOnContainers AiurSoft : 微服务框架 Server酱:是一款「程序员」和「服务器」之间的通信软件. http://sc.ftqq.com/3. ... 
- 宝塔安装swoole
			新建文件夹 mkdir swoole 切入到文件夹中,进行下载安装包 wget http://pecl.php.net/get/swoole-4.3.2.tgz 解压 tar -zxvf swoole ... 
- 字段like多个条件(or关系)简写
			字段 like ‘匹配串1’or 字段 like ‘匹配串2’or ... 有如下简写方式 oracle: select * from tablex where REGEXP_LIKE(字段名, ' ... 
- composer安装。
			我们这里实在Windows下进行的安装.1.下载Composer安装包.网址:https://getcomposer.org/download/下载Composer-Setup.exe 安装文件.2. ... 
- Vue/Egg大型项目开发(二)数据库设计
			项目Github地址:前端(https://github.com/14glwu/stuer)后端(https://github.com/14glwu/stuer-server) 项目线上预览:http ... 
- bzoj 3597 [Scoi2014] 方伯伯运椰子 - 费用流 - 二分答案
			题目传送门 传送门 题目大意 给定一个费用流,每条边有一个初始流量$c_i$和单位流量费用$d_i$,增加一条边的1单位的流量需要花费$b_i$的代价而减少一条边的1单位的流量需要花费$a_i$的代价 ... 
- java中的循环方法(附带本人遇到的坑)
			java循环结构 顺序结构的程序语句只能 被执行一次.如果你要同样的操作执行多次,就需要使用循环结构. java中有三种主要的循环结构: 1.while 循环 2.do...while 循环 3.fo ... 
- jQuery的offset、position、scroll,元素尺寸、对象过滤、查找、文档处理
			jQuery_offset和position var offset = $('.xxx').offset() console.log(offset.left.,offset.top)xxx相对于页面左 ... 
- CentOS7攻克日记(二) —— 配置初始化及网络配置
			reboot之后到达这个页面,点击第一个进去同意一下协议之后Done,然后点击右下角的FINISH 
- C语言-第6次作业
			1.本章学习总结 1.1思维导图 1.2 本章学习体会 学习感受:先是接触到网络工程导论的建立文件的方式,觉得很方便很好用,而后直接从代码的层面建立文件,觉得很新奇,更加方便,随着大作业的一步一步升级 ... 
