java – 实例初始化器被认为是坏样式吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 实例初始化器被认为是坏样式吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1299字,纯文字阅读大概需要2分钟。
内容图文
我个人非常喜欢实例初始化器 – 我使用它们来为诸如集合之类的东西分配默认值,所以在编写构造函数时,我不必记住每次都为它们分配相同的默认值.对我来说这似乎很优雅 – 避免恼人的NPE弹出并避免重复代码.私有方法似乎不太好,因为a)它不能为最终字段赋值,b)它可以在代码中的其他地方运行,c)该方法仍然需要在每个构造函数的开头显式调用.
然而,与我所说过的其他人的另一面是,他们令人困惑,有些人阅读代码可能不了解他们做什么或何时被调用,因此他们可能会导致比他们解决的问题更多的问题.
是否应该鼓励或避免使用这些初始化器?或者它是“每个人都有自己的”案例?
解决方法:
这取决于,例如,关于您的代码的Java读者的知识水平可以预期,以及替代是否实用.
替代方案是:
>内联到每个构造函数中.如果有几个构造函数,则会违反DRY.
>让所有构造函数委托给相同的构造函数,并将代码放在那个构造函数中.如果构造函数是非平凡的,并且采用不同的参数,则可能需要编写一个新的构造函数,该构造函数接收其参数中所有字段的值.如果有很多字段,这可能会变得相当冗长(并且难以阅读,因为将哪个值分配给哪个字段并不明显)
>让所有构造函数调用init方法.无法以这种方式分配最终字段.应该可能会阻止该方法被覆盖.可能希望防止它被多次调用.
由于初始化程序并不常见,因此只有在使用它们有明显优势时才应该更喜欢它们.我最近使用的是:
private final Collator collator = Collator.getInstance();
{
collator.setStrength(Collator.SECONDARY);
}
在一个具有几个构造函数的类中,这些构造函数具有相当不同的参数列表和六个其他字段.
内容总结
以上是互联网集市为您收集整理的java – 实例初始化器被认为是坏样式吗?全部内容,希望文章能够帮你解决java – 实例初始化器被认为是坏样式吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。