- 浏览: 216777 次
- 性别:
- 来自: 北京
文章分类
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编译器帮我们做了语法的解析和编译。完全也可以自己实现。但是既然有这样方便一个东西,当然会去用了。
实例:
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编译器帮我们做了语法的解析和编译。完全也可以自己实现。但是既然有这样方便一个东西,当然会去用了。
发表评论
-
JVM启动时指定-Dfile.encoding="UTF8"的作用
2013-10-17 13:50 2413简单来说就是指定JVM默认的编码方式 java io中很多方法 ... -
java多线程 小记
2012-04-15 14:49 0thread join的方法 http://blog.csdn ... -
浅析多线程
2012-04-08 22:35 0线程组 线程是被 ... -
多线程意外中断处理
2012-04-08 20:54 0本文转自:http://peirenlei.iteye.com ... -
多线程项目学习
2012-04-08 20:35 0线程组的作用: ThreadGroup类中的某些方法,可以对线 ... -
java 静态成员变量的内存分配
2012-04-06 10:28 0静态成员变量是属于类变量,即当JVM加载class文件到虚拟机 ... -
深度克隆与浅克隆
2012-04-05 16:31 1179要想实现某个对象的克隆需要该对象实现java.lang.Clo ... -
修改图片大小并添加水印
2012-03-29 13:47 1330import java.awt.*; import java. ... -
JVM的内存分配
2012-03-16 10:06 0Java里的堆(heap)栈(stack)和方法区(metho ... -
HashMap添加数据的过程
2012-03-14 22:18 7140当添加的元素的key为null ... -
几种classloader的加载范围
2012-02-28 12:43 1379Bootstrap class loader:最顶级的clas ... -
利用正则表达式获取网页中多处重复出现的标签数据
2012-02-21 11:21 2741public static void main(String[ ... -
标准的URLConnection请求
2012-01-13 16:39 0只写了主要的代码 URL url = new URL(urlS ... -
常用的ClassLoader的加载范围
2012-01-13 13:53 1440WebAppClassLoader装载器装作文件的范围: 会加 ... -
ClassLoader.getSystemClassLoader().loadClass()和Class.forName()的区别
2012-01-13 13:08 0class A { static { System.ou ... -
httpClient超时解决办法
2012-01-12 16:47 0DefaultHttpClient: 请求超时 httpcli ... -
项目中的使用技巧小记
2012-01-10 21:11 618实现数据在多线程之间的共享: 因为线程的成员变量是各个该线程实 ... -
ThreadLocal
2012-01-10 08:55 1452ThreadLocal是实现线程范围内的数据共享,即不同线程获 ... -
线程加锁优化
2012-01-08 13:19 0实际上,在某些classes中,这种instance方法的同步 ... -
实现多线程使用继承Thread类和Runnable的原因
2012-01-03 15:09 1407我们都知道实现多线程的两种方式,一种是继承Thread类,另一 ...
相关推荐
### Java中的Enum使用与分析 #### 一、概述 在Java编程语言中,`Enum`是一种特殊的数据类型,用于表示一组固定的常量值。通过枚举(`enum`),开发者可以更加直观地定义一系列预定义的值,并为这些值提供类型安全...
在这个“enum 结构分析源码”资源中,我们主要关注的是C语言中的枚举使用和实现。C语言中的enum并不是一种真正的类型,而是对整型变量的一种别名,它提供了更易读的常量名称。 首先,我们来看`enum.c`这个源文件。...
通过上述分析,可以看出`Enum`不仅是一种数据类型,更是一种设计模式,它集成了封装、继承和多态等面向对象编程的核心概念,为开发者提供了强大的工具箱,用以处理固定集合的常量。然而,`Enum`的使用也需要遵循一定...
分析还可能涉及如何优化`enum`和`switch`的使用,以提高代码的可维护性和性能。 此外,"赚钱项目"这个文件名可能暗示了案例分析中包含了一个实际的商业应用示例,可能是关于如何利用`enum`和`switch`设计一个盈利...
总结来说,OPC Enum 32-64安装包是针对不同系统环境的OPC核心组件解决方案,包含了OPC DA、HDA和AE的关键服务,能够帮助开发者和工程师在32位和64位操作系统上建立可靠的数据连接,实现自动化系统的监控和控制。
`EnumType.values()`返回所有枚举常量的数组,方便遍历和处理。 9. **枚举的枚举常量顺序**: 枚举常量的顺序是它们在源代码中出现的顺序,这个顺序是固定的。 10. **枚举的枚举常量的属性**: 枚举常量可以有...
`DNS-ENUM.rar_ENUM/DNS_dns_enum 域名解析`这个压缩包文件包含了关于DNS枚举和域名解析的相关工具或代码实现,这通常涉及到网络安全分析、漏洞检测或网络监控等领域。 1. **DNS枚举**: DNS枚举是一种网络安全...
而"协议"部分则意味着它不仅列举设备,还可能分析并提供SPI通信的详细规范,如时钟极性(CPOL)、时钟相位(CPHA)、数据位宽和传输顺序等。 标签"enum_s spi"再次强调了SPI设备的枚举功能,"s"可能是"scan"或...
这个"Filter_Enum.rar_enum.filter"文件包是专门针对DirectShow过滤器枚举和详细信息获取的工具,它采用了非传统的直接解析方法,使得我们可以获取到比标准教程更全面的过滤器类型信息。 首先,我们要理解...
该任务主要涉及Windows API函数的使用,特别是`RegOpenKey`, `RegEnumKeyEx`, 和 `RegCloseKey` 函数。 ### 知识点一:注册表概述 在深入细节之前,我们需要了解注册表的基本概念。Windows注册表是一个存储操作...
7. **使用示例**:使用"enum_func.py"时,首先需要安装Frida工具,然后在Python环境中导入并执行脚本,指定目标进程和.so库,脚本会自动枚举并hook所有导出函数。 8. **安全性与合法性**:虽然hook技术在开发和调试...
标题“HDD enum tool”指的是一个用于枚举硬盘驱动器(HDD)的工具,它能够帮助用户...通过使用这个工具,用户不仅可以了解存储设备的基本信息,还能进行更高级的分析和故障预防,从而保障数据的安全和系统的稳定运行。
【7enum枚举字函数程序案例VC共4页.pdf】 这个压缩包文件包含了一个关于“7enum枚举字函数”的程序案例...在阅读和实践案例时,建议结合具体代码分析枚举的用法,理解7enum的设计思想,并尝试将其应用到自己的项目中。
Java 中使用 enum 进行传输的可行性分析 在 Java 中,使用枚举类型(enum)来表示状态或状态值是一种非常常见的做法。但是,在将枚举类型用于传输时,需要注意一些问题。在本文中,我们将探讨 Java 中是否可以直接...
本文深入探讨了 C++ 中enum class(强类型枚举)和传统enum(普通枚举)的特性、用法、区别以及各自的适用场景。通过详细的代码示例、语法分析和实际应用案例,帮助读者全面理解这两种枚举类型在类型安全性、作用域...