- class Movie {
- [...]
- static class MovieAward {
- [...]
- }
- }
避免可变性
- class Movie {
- [...]
- Movie sequel() {
- return Movie.create(this.title + " 2");
- }
- }
- // Use like this:
- Movie toyStory = Movie.create("Toy Story");
- Movie toyStory2 = toyStory.sequel();
或许很难做到每个类都弗成变。对于这种情况,尽可能使你的类变得弗成变(比如应用 private final 字段,final 类声明)。在移动设备上创建对象价值加倍昂贵,是以不要过度应用。
弗成变对象在颇┞符个生命周期中都保持不变。所有须要的数据都在对象创建时供给。这种方法有着多种长处,如简单,线程安然以及可共享。
静态成员类
如不雅你定义了一个不依附于外部类的内部类,别忘了将其定义为静态的。不这么做的话会导致每个内部类的实例都邑拥有对外部类的引用。
泛型(几乎)无处不在
Java 供给潦攀类型安然的特点,我们应对此心怀感激(看看JS吧)。尽量避免应用原始类型 (raw types)或者对象类型。泛型大年夜多半情况下都供给了让你的代码在编译时类型安然的机制。
- // DON'T
- List movies = Lists.newArrayList();
- movies.add("Hello!");
- [...]
- String movie = (String) movies.get(0);
- // DO
- List<String> movies = Lists.newArrayList();
- movies.add("Hello!");
- [...]
- String movie = movies.get(0);
别忘了你能在函数的参数和返回值中应用泛型。
- // DON'T
- List sort(List input) {
- [...]
- }
- // DO
- <T> List<T> sort(List<T> input) {
- [...]
- }
为了加倍灵活你可以应用 bounded wildcards 来拓展可接收的类型典范围。
- // Read stuff from collection - use "extends"
- void readList(List<? extends Movie> movieList) {
- for (Movie movie : movieList) {
- System.out.print(movie.getTitle());
推荐阅读
“互联网金融在公平易近经济中扮演侧重要感化的同时,不难看出其在快速成长过程中也裸露出了异常严重的安然风险问题。”7月11日,国度信息化专家咨询委员会常务副主任、国度互联网金融专业技巧委员会主任周>>>详细阅读
本文标题:从Effective Java总结一些有助安卓开发的建议
地址:http://www.17bianji.com/lsqh/36184.html
1/2 1

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