new出来一个二手对象???
和往常一样,开开心心的写代码
突然出现的一个Bug让我措不及防!!!
这是怎么回事,这突如其来的花纹又是怎么回事
这些图片为啥都是 二手的 ???
出现这样的情况之后
我就深入Mat对象的源码进行观察
发现Mat对象的每一次操作都是基于nativeObj这个long类型的变量操作的
可能是在C++中的指针吧
然后我就对 dst 这个引用对象进行了控制台打印输出
他的输出结果也非常正常,每个对象的指针都不一样
然后突然发现后面的dataAddr 竟然出现一样的情况
我就又查看了一下dataAddr
发现大概意思好像是取nativeObj的地址…
等等… 地址一样???
不是new吗???
我 new 的对象是二手的???
我嘞个擦 啥情况不应该啊,new 还能 new 出来二手的
亏我昨天在情人节的时候还发了个:
如果没有对象就new一个对象…
这能咋办,new都不能创建新的对象,我还上哪里找新的
突然想到了一个setTo方法
他的意思类似于 画图工具的油漆桶…
这样就把Mat设置成纯黑的了
然后运行代码进行操作
运行后代码非常正常!!!
太难了这年头 new 出来的对象都不是新的…
看来以后new一个Mat对象的时候 记得给它setTo
给它洗白白,这样不管它是新的还是旧的,
洗白白了就是白的,反正你要的就是白的!!!