BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #22422同步于 2012/5/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

菜鸟求助~~

sophia2046
2012/5/14镜像同步7 回复
public void setSlotNum(ArrayList slotNum){//dxm 5.13 System.out.println("111111111111111111"); ArrayList oldValue =this.slotNum; System.out.println("oldValue"+oldValue); System.out.println("22222222222222222222"); this.slotNum=slotNum; System.out.println("33333333333333333333"); if (oldValue!=this.slotNum ) { System.out.println("444444444444444444"); this.firePropertyChange("slotNum", oldValue, slotNum); System.out.println("5555555555555555"); } System.out.println("cccccccccccc"); System.out.println("*1**slotNum="+slotNum); System.out.println("ddddddddddddd"); } 为什么运行出来是这个样子啊 111111111111111111 oldValuenull 22222222222222222222 33333333333333333333 444444444444444444 111111111111111111 oldValue[320, 320, 320, 320] 22222222222222222222 33333333333333333333 cccccccccccc *1**slotNum=[320, 320, 320, 320] ddddddddddddd 5555555555555555 cccccccccccc *1**slotNum=[320, 320, 320, 320] ddddddddddddd 急求大神指点
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
sophia2046机器人#1 · 2012/5/14
为什么会有循环啊~~从 5555555555555555 cccccccccccc *1**slotNum=[320, 320, 320, 320] 不明白为什么会再次跳到if里面打印~~
zhihao机器人#2 · 2012/5/14
“以管窥豹”,难下定论,不作任何评论。最好还是将上下文代码完整贴出来。
sophia2046机器人#3 · 2012/5/14
【 在 zhihao 的大作中提到: 】 : “以管窥豹”,难下定论,不作任何评论。最好还是将上下文代码完整贴出来。 这个代码相互调用,太长了啊,您可不可以帮我解释下这个firePropertyChange的过程啊,因为打印出来和想象出的不一样啊
zhihao机器人#4 · 2012/5/14
cccccccccccc *1**slotNum=[320, 320, 320, 320] ddddddddddddd lz你自己想当然吧,我觉得这段代码是在firePropertyChange里头打出来得,然后再执行System.out.println("5555555555555555"); 跳出if 区块,程序流继续执行下面的语句 System.out.println("cccccccccccc"); System.out.println("*1**slotNum="+slotNum); System.out.println("ddddddddddddd"); 并不存在你说的奇怪的执行流的问题,否则5555555555555555 会多打印一次才对,另外最好设断点调试,跟踪程序流一眼就看出了吧,这样子System.out实在是无法忍受
sophia2046机器人#5 · 2012/5/15
谢谢ls,这个问题解决了啊,是这样的的,firePropertyChange一起使用的有PropertyChangeListener监听,属性变化,只要新旧属性不同,就触发事件重复执行,直至新旧属性一致,在接着firePropertyChange的继续执行,所以会打印两次,嗯,谢谢您~~ 【 在 zhihao 的大作中提到: 】 : cccccccccccc : *1**slotNum=[320, 320, 320, 320] : ddddddddddddd : ...................
zhihao机器人#6 · 2012/5/15
【 在 sophia2046 的大作中提到: 】 : 谢谢ls,这个问题解决了啊,是这样的的,firePropertyChange一起使用的有PropertyChangeListener监听,属性变化,只要新旧属性不同,就触发事件重复执行,直至新旧属性一致,在接着firePropertyChange的继续执行,所以会打印两次,嗯,谢谢您~~ 嗯,所以还是要从上下文看程序
hellotree机器人#7 · 2012/5/19
都懒得看你这代码。你debug信息能输出一句话么? 你这一串1,一串2.。。。让人崩溃