当兵须返回空的列表/集应时,避免应用null。返回一个空的聚聚会会议产生一个更简单的接口(不须要去进行文档注释并声明函数返回值为 null),还能避免不测的空指针异常。最好返回一个雷同的空集合而不是创建一个新的。

总结
在编写经久运行下既易于保护又能保持高效的 Java 代码这方面 ,《Effective Java》 被很多人看做最重要的书之一。 Android 应用的是 Java 说话,这就意味着这本书中所有给出的建议必定都是实用与 Android 的,对吗?谜底是:不必定。
有些人认为这本书给出的大年夜多半建议都不实用于 Android 开辟。在我看来,也并非如斯。我认为这本书中有一部分是不实用的,因为不是所有的 Java 特点都是为了用于 Android 而优化的(比如列举,序列化等等),也因为移动设备存在自身的限制(比如 Dalvik/ART 表示和 JVM 不合)。尽管如斯,这本书中的大年夜多半典范照样可以或许不加修改或者少量修改地被应用,并可以或许有助于建立一个加倍健康、干净和可保护的代码库。
强迫弗成实例化
如不雅你不欲望应用 new 关键字来创建一个对象,那就强迫应用私有构造器(private constructor)。这对于仅包含静态办法的对象类来说加倍有效。
- List<Movie> latestMovies() {
- if (db.query().isEmpty()) {
- return Collections.emptyList();
- }
- [...]
- }
静态工厂
不要应用 _new_ 关键字和构造器,应用静态工厂办法(以及一个私有的构造器)。这些工厂办法是定名的,不需液每次都返回一个新的对象实例,并且可以根据须要返回不合的子类型。
- class Movie {
- [...]
- public static Movie create(String title) {
- return new Movie(title);
- }
- }
【更新】读者 @ stsdema28 提出了一个有效的建议:应用静态工厂会使得测试变得艰苦。如不雅如许的话,不妨推敲应用一个风静态的工厂用于在测试时进行模仿(或者一个可以或许实现的工厂接口)。
Builders
当你有须要三个以上的构造参数时,应用 Builder 去构造这个对象。写起来可能有点烦琐然则如许伸缩性和可读性都很好。如不雅你创建的是值类型,推敲 AutoValue。
- class Movie {
- static Builder newBuilder() {
- return new Builder();
- }
- static class Builder {
- String title;
- Builder withTitle(String title) {
- this.title = title;
- return this;
- }
- Movie build() {
- return new Movie(title);
- }
- }
- private Movie(String title) {
- [...]
推荐阅读
“互联网金融在公平易近经济中扮演侧重要感化的同时,不难看出其在快速成长过程中也裸露出了异常严重的安然风险问题。”7月11日,国度信息化专家咨询委员会常务副主任、国度互联网金融专业技巧委员会主任周>>>详细阅读
本文标题:从Effective Java总结一些有助安卓开发的建议
地址:http://www.17bianji.com/lsqh/36184.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示