`

enum的使用和分析

阅读更多
enum代表一组相同类型的常量。
实例:
package util;

public enum TYPE {
//定义邮件服务器常量,必须添加对应的构造方法
SMTP_126("smtp.126.com"),SMTP_TNICE("smtp.tnice.qq.com"),SMTP_163("smtp.163.com");

private final  String smtpType;

/**
* 构造函数
* @param smtpType 服务器类型值
*/
private TYPE(final String smtpType){
this.smtpType = smtpType;
}
//返回服务器对应的值
public String getValue(){
return this.smtpType;
}

public void guessValue(TYPE type){
switch(type){
case SMTP_126:System.out.println(type.getValue());break;
case SMTP_TNICE:System.out.println(type.getValue());;break;
case SMTP_163:System.out.println(type.getValue());;break;
default:System.out.println("传的类型不匹配");
}
}

//测试
public static void main(String[] args) {
for(TYPE type:TYPE.values()){
System.out.println("直接打印:"+type);
System.out.println("DeclaringClass:"+type.getDeclaringClass());
System.out.println("常量对应的value:"+type.getValue());
type.guessValue(type);

}
}
}
最后一个的输出结果:
smtp.tnice.qq.com
直接打印:SMTP_163
DeclaringClass:class util.TYPE
常量对应的value:smtp.163.com
smtp.163.com

注:经过编译器编译之后产生的是一个class文件。该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.Enum<E>.
SMTP_126反编译后都是final类型的静态常量。因此可以通过枚举类直接调用。打印出的就是该值本身。
所以实际上Enum类型就是以Java类来实现的,没有什么新的特点,只不过java编译器帮我们做了语法的解析和编译。完全也可以自己实现。但是既然有这样方便一个东西,当然会去用了。

分享到:
评论

相关推荐

    Java中的Enum的使用与分析

    ### Java中的Enum使用与分析 #### 一、概述 在Java编程语言中,`Enum`是一种特殊的数据类型,用于表示一组固定的常量值。通过枚举(`enum`),开发者可以更加直观地定义一系列预定义的值,并为这些值提供类型安全...

    enum 结构分析源码

    在这个“enum 结构分析源码”资源中,我们主要关注的是C语言中的枚举使用和实现。C语言中的enum并不是一种真正的类型,而是对整型变量的一种别名,它提供了更易读的常量名称。 首先,我们来看`enum.c`这个源文件。...

    Enum的用法

    通过上述分析,可以看出`Enum`不仅是一种数据类型,更是一种设计模式,它集成了封装、继承和多态等面向对象编程的核心概念,为开发者提供了强大的工具箱,用以处理固定集合的常量。然而,`Enum`的使用也需要遵循一定...

    7enum和switch语句联合案例分析VC共6页.pdf

    分析还可能涉及如何优化`enum`和`switch`的使用,以提高代码的可维护性和性能。 此外,"赚钱项目"这个文件名可能暗示了案例分析中包含了一个实际的商业应用示例,可能是关于如何利用`enum`和`switch`设计一个盈利...

    opc enum 32-64安装包

    总结来说,OPC Enum 32-64安装包是针对不同系统环境的OPC核心组件解决方案,包含了OPC DA、HDA和AE的关键服务,能够帮助开发者和工程师在32位和64位操作系统上建立可靠的数据连接,实现自动化系统的监控和控制。

    详解Java的Enum的使用与分析

    `EnumType.values()`返回所有枚举常量的数组,方便遍历和处理。 9. **枚举的枚举常量顺序**: 枚举常量的顺序是它们在源代码中出现的顺序,这个顺序是固定的。 10. **枚举的枚举常量的属性**: 枚举常量可以有...

    DNS-ENUM.rar_ENUM/DNS_dns _enum 域名解析

    `DNS-ENUM.rar_ENUM/DNS_dns_enum 域名解析`这个压缩包文件包含了关于DNS枚举和域名解析的相关工具或代码实现,这通常涉及到网络安全分析、漏洞检测或网络监控等领域。 1. **DNS枚举**: DNS枚举是一种网络安全...

    SPI_enum.rar_enum s_spi

    而"协议"部分则意味着它不仅列举设备,还可能分析并提供SPI通信的详细规范,如时钟极性(CPOL)、时钟相位(CPHA)、数据位宽和传输顺序等。 标签"enum_s spi"再次强调了SPI设备的枚举功能,"s"可能是"scan"或...

    Filter_Enum.rar_enum.filter

    这个"Filter_Enum.rar_enum.filter"文件包是专门针对DirectShow过滤器枚举和详细信息获取的工具,它采用了非传统的直接解析方法,使得我们可以获取到比标准教程更全面的过滤器类型信息。 首先,我们要理解...

    cplusplus_enum_regedit

    该任务主要涉及Windows API函数的使用,特别是`RegOpenKey`, `RegEnumKeyEx`, 和 `RegCloseKey` 函数。 ### 知识点一:注册表概述 在深入细节之前,我们需要了解注册表的基本概念。Windows注册表是一个存储操作...

    enum_func.zip_FRIDA_frida hook_hook enum_安卓hook

    7. **使用示例**:使用"enum_func.py"时,首先需要安装Frida工具,然后在Python环境中导入并执行脚本,指定目标进程和.so库,脚本会自动枚举并hook所有导出函数。 8. **安全性与合法性**:虽然hook技术在开发和调试...

    HDD enum tool

    标题“HDD enum tool”指的是一个用于枚举硬盘驱动器(HDD)的工具,它能够帮助用户...通过使用这个工具,用户不仅可以了解存储设备的基本信息,还能进行更高级的分析和故障预防,从而保障数据的安全和系统的稳定运行。

    7enum枚举字函数程序案例VC共4页.pdf.zip

    【7enum枚举字函数程序案例VC共4页.pdf】 这个压缩包文件包含了一个关于“7enum枚举字函数”的程序案例...在阅读和实践案例时,建议结合具体代码分析枚举的用法,理解7enum的设计思想,并尝试将其应用到自己的项目中。

    浅谈Java中是否直接可以使用enum进行传输

    Java 中使用 enum 进行传输的可行性分析 在 Java 中,使用枚举类型(enum)来表示状态或状态值是一种非常常见的做法。但是,在将枚举类型用于传输时,需要注意一些问题。在本文中,我们将探讨 Java 中是否可以直接...

    C++ 中 enum class 与 enum 的全面解析与对比

    本文深入探讨了 C++ 中enum class(强类型枚举)和传统enum(普通枚举)的特性、用法、区别以及各自的适用场景。通过详细的代码示例、语法分析和实际应用案例,帮助读者全面理解这两种枚举类型在类型安全性、作用域...

Global site tag (gtag.js) - Google Analytics