`
wdmcygah
  • 浏览: 62053 次
社区版块
存档分类
最新评论

六、编写高质量的代码—枚举和注解(笔记)

    博客分类:
  • J2SE
阅读更多

本博文为《编写高质量代码—改善Java程序的151个建议》一书的阅读笔记。该书从很多方面给予了编写高质量代码的宝贵经验。而且该书应该是那种开发经验越丰富,体会越深的书籍。在阅读过程中,从该书中收获良多,这里主要作下书籍笔记,有体会的地方加点自己的想法。受限于知识水平,部分内容还没能深刻体会,所以更多更好的内容和具体实例还需要从书中去找寻。

一、推荐使用枚举类定义常量

常量声明主要有三种方式:类常量、接口常量、枚举常量,而枚举常量与类常量、接口常量相比有如下优势:
1. 枚举常量定义更加简单直接。
2. 枚举常量属于稳态性,不要做过多校验。
3. 枚举常量具有内置方法,枚举类自带的很多方法可以简化常量的访问。
4. 枚举常量可以自定义方法,每个枚举项都该枚举的实例。 因此推荐使用枚举常量,个人觉得枚举常量在一组相关联的常量定义时非常适用。

二、使用构造函数协助描述枚举项

由于每个枚举项都是该枚举类的实例,所以在需要该枚举项需要额外描述时可以通过构造函数进行补充。

三、switch判断时小心空值异常

switch判断后面可以是枚举类型,因为判断时会调用枚举项的ordinal方法,拿到对应的序号进行判断,所以在switch判断时需要避免判断的枚举对象为空,不然会报空指针异常。

四、使用valueOf前必须进行校验

Enum.valueOf方法可以把String类型的参数转化成字面值相同的枚举项,不过需要注意当找不到相同的枚举项时转换会报出参数异常。所以在调用方法最好进行校验,判断该字面值是否存在,具体的做法可以在枚举类中实现“contains方法”。

五、@Override不同版本的区别 

@Override注解用于方法的覆写上,它在编译期有效,用于校验方法是否是覆写,如果不是就报错,拒绝编译。但是这个注解在不同JDK版本中略有区别,在JDK 1.5版本中如果父类是一个接口,实现类实现了接口的具体方法,此时加@Override是会编译不通过,因为认为这不是覆写,而是实现接口方法。不过在JDK 1.6及以上的版本,这种限制放宽了,实现接口方法也可以加上@Override注解。

 

 

1
0
分享到:
评论

相关推荐

    JDK 6 java 学习笔记的代码

    Java是世界上最流行的编程...通过深入学习这些特性,开发者可以更好地利用JDK 6提供的功能,提高代码质量和效率。"Example"这个文件可能包含了书中讲解这些特性的示例代码,通过实践这些代码,可以加深对JDK 6的理解。

    达内部分笔记j2se部门的笔记

    理解如何定义和使用泛型类、接口和方法,是编写高质量Java代码的关键。 9. **枚举与内部类**:枚举是Java中的一种特殊类,用于定义一组相关的常量,而内部类则允许在一个类的内部定义另一个类,提供了更灵活的封装...

    韩顺平java从入门到精通笔记完整版

    最后,笔记可能还会涵盖网络编程、反射机制、泛型、枚举、注解以及Java的高级特性,如Lambda表达式、Stream API和Optional类,这些都是Java 8及以后版本引入的新特性,对提升代码质量和效率有很大帮助。 通过这份...

    韩顺平.循序渐进学.java.从入门到精通完整版PPT完整版笔记代码

    配合PPT教程的笔记代码部分,则提供了实例代码和练习题,有助于加深理解并提高动手能力。通过实际编写和运行代码,可以更好地掌握理论知识,并解决实际问题。 总的来说,这套资源对于想要系统学习Java编程的人来说...

    良葛格Java JDK 5.0学习笔记

    Java JDK 5.0是Java发展历程中的一个重要里程碑,它引入了许多创新特性,为开发者提供了更加高效和便捷的编程环境。...通过深入学习和实践,开发者可以更好地利用Java 5.0的特性,提高编程效率,编写出更高质量的代码。

    java基础18天Typora笔记

    使用JUnit进行单元测试,确保代码的质量和可靠性。 18. **Maven项目管理** Maven作为Java项目构建工具,能自动化处理依赖管理和构建流程。 通过这18天的学习,你将对Java编程有全面的认识,并具备编写简单Java...

    JAVA学习笔记JDK6课件含演示代码

    11. **单元测试(JUnit)**:学习如何使用JUnit编写单元测试,确保代码的质量和可靠性。 12. **注解(Annotation)**:注解是JDK 5引入的新特性,在JDK 6中得到了更广泛的应用,它可以用于元数据的标记,简化代码,...

    Java基础知识学习笔记

    了解它们的使用场景和规则,对于写出高质量的代码至关重要。 4. **集合框架**:如ArrayList、LinkedList、HashMap、HashSet等,这些都是Java程序员日常工作中最常使用的工具。理解它们的工作原理和适用场景,能有效...

    JAVA基础笔记以及关键字整理.rar

    这些关键字的理解和正确使用,对于编写高质量的Java代码至关重要。 通过阅读这份笔记,你可以系统地学习和复习Java的基础知识,加深对关键字的理解,从而提升编程技能。无论是初学者想要入门,还是专业人士希望巩固...

    java 学习笔记

    11. **枚举和注解**:枚举类型提供了比常量更安全的表示方式,而注解则提供了一种元数据,可以用于编译时或运行时进行代码处理。 12. **垃圾回收(GC)**:Java的自动内存管理通过垃圾回收机制避免了内存泄露。理解...

    TypeScript学习笔记

    **TypeScript 学习笔记** TypeScript 是一种由微软开发的强类型、静态类型的超集编程语言,它扩展了 JavaScript,增加了对类、接口、泛型等...学习 TypeScript 不仅能提升开发效率,还能帮助我们写出更高质量的代码。

    Java+JDK+6学习笔记课件林学良.rar

    8. **JDK 6新特性**:JDK 6引入了许多新特性和改进,如增强的for循环(foreach)、枚举类型、注解(Annotation)、动态代理等,这些都极大地提高了开发效率和代码质量。 通过这套学习笔记课件,学习者不仅可以全面...

    java学习笔记

    这个版本引入了许多新的特性和改进,极大地提升了开发效率和代码质量。以下是一些关键的Java 5.0特性: 1. **泛型**:泛型允许在类、接口和方法声明中使用类型参数,增强了类型安全,减少了强制类型转换,同时提供...

    良葛格Java JDK 5.0学习笔记ch03

    Java JDK 5.0是Java发展历程中的一个重要里程碑,它引入了许多新特性,极大地提升了开发效率和代码质量。良葛格的Java JDK 5.0学习笔记涵盖了这些关键知识点,让我们一起深入探讨。 1. **自动装箱与拆箱**: JDK ...

    Effective Java.zip

    《Effective Java》是一本经典Java编程指南,作者是Joshua Bloch,这本书深入探讨了如何编写高质量、高效、可维护的Java代码。以下是对压缩包中各章节主要知识点的详细阐述: 1. **第2章 创建和销毁对象** - 单例...

    javaapi合集

    对于开发者来说,深入理解和熟练运用Java API是提高编程效率和编写高质量代码的关键。通过阅读JDK_API_1_6_zh_CN.CHM这份中文参考文档,开发者可以详细了解到每个类的功能、方法的使用以及参数的含义,从而更好地...

Global site tag (gtag.js) - Google Analytics