`
longgangbai
  • 浏览: 7340086 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache 枚举工具类的源码的分析

阅读更多

Apache commons-lang报的枚举工具类的学习应用:

他提供的根据枚举的类方法如下逐个分析

备注咋Apache commons-lang中枚举对象(Enum是一个封装枚举类而非枚举类型)

 

public class EnumUtils {

    /**
     * Public constructor. This class should not normally be instantiated.
     * @since 2.0
     */
    public EnumUtils() {
      super();
    }

    /**

    * 根据枚举类和类型类型的名称(value)查找枚举
     * <p>Gets an <code>Enum</code> object by class and name.</p>
     *
     * @param enumClass  the class of the <code>Enum</code> to get
     * @param name  the name of the Enum to get, may be <code>null</code>
     * @return the enum object
     * @throws IllegalArgumentException if the enum class is <code>null</code>
     */
    public static Enum getEnum(Class enumClass, String name) {
        return Enum.getEnum(enumClass, name);
    }

    /**根据枚举类和枚举键查找
     * <p>Gets a <code>ValuedEnum</code> object by class and value.</p>
     *
     * @param enumClass  the class of the <code>Enum</code> to get
     * @param value  the value of the <code>Enum</code> to get
     * @return the enum object, or null if the enum does not exist
     * @throws IllegalArgumentException if the enum class is <code>null</code>
     */
    public static ValuedEnum getEnum(Class enumClass, int value) {
        return (ValuedEnum) ValuedEnum.getEnum(enumClass, value);
    }

    /**根据枚举类查找所有枚举类型的Map
     * <p>Gets the <code>Map</code> of <code>Enum</code> objects by
     * name using the <code>Enum</code> class.</p>
     *
     * <p>If the requested class has no enum objects an empty
     * <code>Map</code> is returned. The <code>Map</code> is unmodifiable.</p>
     *
     * @param enumClass  the class of the <code>Enum</code> to get
     * @return the enum object Map
     * @throws IllegalArgumentException if the enum class is <code>null</code>
     * @throws IllegalArgumentException if the enum class is not a subclass
     *  of <code>Enum</code>
     */
    public static Map getEnumMap(Class enumClass) {
        return Enum.getEnumMap(enumClass);
    }

    /**根据枚举类所有枚举类型集合
     * <p>Gets the <code>List</code> of <code>Enum</code> objects using
     * the <code>Enum</code> class.</p>
     *
     * <p>The list is in the order that the objects were created
     * (source code order).</p>
     *
     * <p>If the requested class has no enum objects an empty
     * <code>List</code> is returned. The <code>List</code> is unmodifiable.</p>
     *
     * @param enumClass  the class of the Enum to get
     * @return the enum object Map
     * @throws IllegalArgumentException if the enum class is <code>null</code>
     * @throws IllegalArgumentException if the enum class is not a subclass
     *  of <code>Enum</code>
     */
    public static List getEnumList(Class enumClass) {
        return Enum.getEnumList(enumClass);
    }

    /**
     * <p>Gets an <code>Iterator</code> over the <code>Enum</code> objects
     * in an <code>Enum</code> class.</p>
     *
     * <p>The iterator is in the order that the objects were created
     * (source code order).</p>
     *
     * <p>If the requested class has no enum objects an empty
     * <code>Iterator</code> is returned. The <code>Iterator</code>
     * is unmodifiable.</p>
     *
     * @param enumClass  the class of the <code>Enum</code> to get
     * @return an <code>Iterator</code> of the <code>Enum</code> objects
     * @throws IllegalArgumentException if the enum class is <code>null</code>
     * @throws IllegalArgumentException if the enum class is not a subclass of <code>Enum</code>
     */
    public static Iterator iterator(Class enumClass) {
        return Enum.getEnumList(enumClass).iterator();
    }
   
}

分享到:
评论

相关推荐

    Java工具类之Apache的Commons Lang和BeanUtils

    Java工具类是开发过程中不可或缺的一部分,它们提供了许多实用的功能,帮助开发者提高代码的效率和可维护性。Apache Commons Lang和BeanUtils是两个非常著名的Java工具库,由Apache软件基金会开发和维护。这两个库...

    java utils 工具类

    在Java中,有很多内置的工具类,如Java.util包下的Collections、Arrays、Date等,同时,也有很多开源框架提供了丰富的工具类库,例如Apache Commons Lang、Google Guava等。 标题提到的"java utils 工具类"可能指的...

    apache-commons-lang.zip 源码

    Apache Commons Lang 是一个Java开发库,它提供了许多实用的工具类,增强了Java语言的功能。这个压缩包"apache-commons-lang.zip"包含了Lang项目的源代码,让我们深入了解一下这个库中的核心概念和功能。 首先,...

    java工具类源代码

    此外,通过源码分析,你可以看到如何使用泛型、枚举、注解等Java特性来提高代码的类型安全性和可读性。 在实际开发中,你可以借鉴这些工具类的设计思想,应用到自己的项目中,提升代码质量。同时,理解源代码的实现...

    apache common-lang

    Apache Commons Lang是Java开发的一个非常重要的工具库,它提供了大量实用的工具类,极大地丰富了Java标准库的功能。这个库包含了许多与字符串处理、数组操作、日期时间转换、枚举处理、数学运算以及对象创建和比较...

    common-lang2.6,lang3-3.4包,源码

    4. Lang3.4:作为Lang3.x系列的一个重要更新,3.4版本进一步完善了已有的工具类,并引入了一些新特性,如枚举工具类EnumUtils,增强了对枚举类型的处理能力。此外,还增强了对Java 8新特性的支持,如Optional类的...

    apache commons

    Apache Commons IO 包含了与输入/输出相关的各种工具类,如文件操作、流处理、行读写、文件比较等。这个库特别适合处理文件系统操作和数据流转换,它提供了一种更简洁、更安全的方式来处理I/O操作,避免了常见的错误...

    commons-lang3-3.5源码1

    源码阅读不仅有助于理解这些工具类的内部工作原理,也有助于我们借鉴和应用到自己的项目中,提升代码的可维护性和复用性。对于Java开发者来说,掌握Apache Commons Lang 3.5的源码无疑是提升技能的重要一步。

    commons-lang3-3.0-bin.zip

    Apache Commons Lang 是一个 Java 类库,它为 Java SDK 增加了大量有用的实用工具类,弥补了标准库中的一些不足。"commons-lang3-3.0-bin.zip" 是 Apache Commons Lang 的第 3.0 版本的二进制分发包。这个压缩包包含...

    设计模式代码实现+源码设计模式分析

    通过源码分析,我们可以看到设计模式如何与其他软件工程原则(如 SOLID 原则)结合,如何促进代码的复用,如何优化系统架构。同时,这也有助于我们学习如何在自己的项目中优雅地运用设计模式,提升软件质量。 总结...

    Java库源码

    1. **Apache Commons**:提供各种实用工具类,如IoUtils、LangUtils、Collections等。 2. **Google Guava**:提供集合、缓存、并发、I/O等实用工具类。 3. **Spring Framework**:企业级应用开发框架,包括依赖...

    commons-lang-3-3.1 jar包和源码包

    通过源码包,开发者可以直接查看和学习这些工具类的实现细节,理解其工作原理,这对于学习和提高Java编程技能非常有帮助。此外,对于需要定制或扩展已有功能的开发者,源码可以提供宝贵的参考和灵感。 总之,Apache...

    commons-io-2.5-src 源码

    Apache Commons IO 是一个Java库,包含了大量用于处理输入/输出操作的工具类。这个源码包"commons-io-2.5-src"提供了该库的源代码,使得开发者能够深入理解其实现细节,对其进行定制或者扩展。Apache Commons IO库在...

    org.apache_xpgod.zip

    Apache Commons Collections是Apache软件基金会开发的一个Java库,它提供了对集合框架的扩展和增强功能,大大简化了在Java...在实际开发中,可以根据具体需求选择使用其中的工具类和接口,以提升代码的效率和功能性。

    apache-ant-1.7.0

    Apache Ant 是一个开源的构建工具,它主要用于Java项目,但也可以用于其他类型的项目。这个"apache-ant-1.7.0"版本是Ant的早期发行版,发布于2007年,提供了构建自动化的一系列功能。在本文中,我们将深入探讨Ant的...

    commons-lang-源码跟帮助

    Apache Commons Lang 是一个非常重要的Java库,它提供了一系列高级的字符串处理、日期操作、枚举类型处理以及其他实用工具类。这个"commons-lang-源码跟帮助"文件包含了Apache Commons Lang库的源代码和相关的帮助...

    图书馆系统源码

    JDK1.5(Java Development Kit)是编写、编译和调试Java应用程序的工具包,其1.5版本引入了泛型、枚举、匿名内部类等许多重要的语言特性。Tomcat5.5是Apache Tomcat服务器的一个较早版本,它是一个开源的Servlet容器...

    commons-lang3-3.9-tar-压缩包.zip

    Apache Commons Lang是Apache软件基金会开发的一个Java类库,它提供了许多在Java标准库中未包含的实用工具类。"commons-lang3-3.9-tar"是一个压缩包,包含了Lang项目版本3.9的源码和相关文件。这个库特别受欢迎,...

    Apache Avro RPC简单示例

    4. **编译与运行**:使用Avro的工具,我们可以将`.avsc`文件编译成Java或其它语言的类。然后,编译源代码并运行服务端和客户端,进行RPC通信。 在实际操作中,首先,我们需要安装Avro的命令行工具,然后执行以下...

    commons-lang3-3.3.2.rar

    总结来说,Apache Commons Lang 3.3.2是一个强大且实用的工具库,它通过提供各种便捷的工具类,大大增强了Java开发者的生产力。通过深入研究其源码,开发者可以提升自己的编程技能,更好地理解和运用Java语言的各种...

Global site tag (gtag.js) - Google Analytics