社区
Java SE
帖子详情
关于netbeans提示 构造函数中泄露this这个问题各位怎么看。
zqfddqr
2013-02-18 03:30:59
中在构造函数中把this赋值给静态变量 就出这个警告
这个在什么情况的时候会有什么样的问题呢
在构造函数中泄露this netbeans是这么说的
...全文
174
5
打赏
收藏
关于netbeans提示 构造函数中泄露this这个问题各位怎么看。
中在构造函数中把this赋值给静态变量 就出这个警告 这个在什么情况的时候会有什么样的问题呢 在构造函数中泄露this netbeans是这么说的
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qinshimingyueliang
2015-05-20
打赏
举报
回复
我的楼上,也就是GuuJiang,太厉害了,今天这个问题困扰了我一天,代码明明没问题,可就是抛出NPE异常,看到你的 “而别的方法如果异步地使用这个this时就有可能在构造方法剩下的语句执行前就访问到这个对象” 这句话的时候突然想到我的就是这个问题,回去把位置一调换,问题果然解决了,大神啊
GuuJiang
2013-02-20
打赏
举报
回复
没用netbeans,不过以前使用findbugs插件时看到过类似的提示,私以为这里的“泄露”不是类似于“内存泄露”中的那个“泄露”,这样的警告其实是有道理的,假如在构造函数中把this传出去(即赋值给别的变量),而别的方法如果异步地使用这个this时就有可能在构造方法剩下的语句执行前就访问到这个对象,事实上我在项目中也的确遇到过这样的BUG,在构造方法中把this传给一个TimerTask,程序运行中偶尔会在那个TimerTask里抛出NPE,而为空的那个属性明明是在构造方法里赋了值的,后来才想到就是这个原因 所以这里的“泄露”的意思其实指的是“在构造方法中把this传出去”,如果确实无法避免这种情况的话最好把这样的语句作为构造方法里的最后一条语句
dracularking
2013-02-18
打赏
举报
回复
楼上都说得很好啊,我来说说一点看法: netbeans自行实现了一套独特的设计理念,区别于eclipse。 它可能认为this可以在构造方法中出现,但最好不要泄露给静态变量,也许它认为这样会破坏构造函数的封装性,因为外部对象可以不通过该类构造方法的返回就能获得该类实例。
花谢尊前不敢香
2013-02-18
打赏
举报
回复
一般来说,警告,并不一定意味着有错,它只是想引起编程者的关注。当然可以使用 @ SuppressWarnings 注释掉。 构造函数一般是完成初始化工作的。由于各个IDE不同,设计的理念也不同,比如在eclipse中,就没有这个提示,而是The static field Test.name should be accessed in a static way。 一般不会造成内存之类的溢出问题的。
healer_kx
2013-02-18
打赏
举报
回复
你忽略就行了,某些Singleton不就这样写的嘛。 而Singleton,你认为它是内存泄露也行啊,它确实不能(也不需要)释放内存啊。。。 【以上说的都是一般情况啊】
构造函数
中
泄漏this
netbeans
一点理解
今天在用
Netbeans
开发一个J2SE项目时
java危险函数,Java - 在
构造函数
中
泄露
它
I'd like to avoid (most of the) warnings of
Netbeans
6.9.1, and I have a problem with the 'Leaking this in constructor' warning.I understand the problem, calling a method in the constructor and passin...
NetBeans
选择管理教程III Node API教程
本教程显示了如何利用
NetBeans
中
的Nodes API的某些功能。它显示了如何执行以下操作: 用图标装饰节点 使用HTML标记来增强节点的显示方式 创建要在属性表
中
显示的属性 提供来自节点的Action ...
Java 开发者的
NetBeans
IDE 入门手册(二)
NetBeans
调试器是第一个提供混合语言支持(例如 Java/JavaScript)的,并将很快帮助为 Oracle 实验室基于新的 Truffle 框架构建的任何语言提供现成的调试,例如 JRuby、FastR、Python 等!—Jaroslav Tulach,...
NetBeans
管理教程三:
NetBeans
Nodes API
本教程演示了如何使用
NetBeans
Nodes API的一些特性。包括以下内容: l 使用图标装饰Nodes l 使用HTML标记增强Node的显示效果 l 在属性表
中
创建显示属性 l 提供Node的Action 入门本教程是
NetBeans
选择管理教程的...
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章