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编译器帮我们做了语法的解析和编译。完全也可以自己实现。但是既然有这样方便一个东西,当然会去用了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值