`

JAVA枚举类型实用代码示例。

    博客分类:
  • java
阅读更多
刚学枚举类型是总觉的枚举类型似乎多此一举,一直在想枚举类型有什么意义。
看到网络上很多枚举类型的例子,觉的很适合颜色调配这个案例,感觉枚举最大的意义是可以像对象一样操作。
自己结合枚举的优点写了一个实用的例子,代码会优雅和精简了许多,供参考。

package utils;
public enum LxzColor{
	Red(255,0,0),
	Green(0,255,0),
	Blue(0,0,255),
	Black("#000000"),
	Purple("#6F00D2"),
    Yello("#F9F900"),
    White("#FFFFFF");
	
	//模式RGB色,HTML色
	enum ColorAdapter{
		All{
			public String toString(LxzColor clr) {
				return "["+"htmlcode="+clr.htmlcode+"  RGB={"+clr.r+","+clr.g+","+clr.b+","+"}"+"]";		
			   }
		},
		RGB{
			public String toString(LxzColor clr) {
				 return "["+clr.r+","+clr.g+","+clr.b+"]";
			   }
		},
		HTML{
			public String toString(LxzColor clr) {
				 return clr.htmlcode;
			   }
		};
		
		public String toString(LxzColor clr) {
			return "["+"htmlcode="+clr.htmlcode+"  RGB={"+clr.r+","+clr.g+","+clr.b+","+"}"+"]";
	   }
	}

	
	String htmlcode;
	int r;
	int g;
	int b;
	private LxzColor(String htmlcolor)
	{
		htmlcode=htmlcolor;
		r=Integer.valueOf(""+htmlcolor.charAt(1)+htmlcolor.charAt(2),16);
		g=Integer.valueOf(""+htmlcolor.charAt(3)+htmlcolor.charAt(4),16);
		b=Integer.valueOf(""+htmlcolor.charAt(5)+htmlcolor.charAt(6),16);

	}
	private LxzColor(int r,int g,int b)
	{
		this.r=r;
		this.g=g;
		this.b=b;
		String $r=String.valueOf(Integer.toHexString(r));
		$r=$r.length()==1?0+$r:$r;
		String $g=String.valueOf(Integer.toHexString(g));
		$g=$g.length()==1?0+$g:$g;
		String $b=String.valueOf(Integer.toHexString(b));
		$b=$b.length()==1?0+$b:$b;
		htmlcode=("#"+$r.toUpperCase()+$g.toUpperCase()+$b.toUpperCase());	

	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return super.toString();
	}
	
	public String toString(ColorAdapter type) {
		// TODO Auto-generated method stub
		return type.toString(this);
	}
}
 
package utils;

import utils.LxzColor.ColorAdapter;


public class dotest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(LxzColor.values());
		
		//打印
		System.out.println(LxzColor.Black);
		System.out.println(LxzColor.valueOf("Red"));
		System.out.println(LxzColor.valueOf(LxzColor.Blue.toString()));
		System.out.println("----------------------");
		
		for(int i=0;i<LxzColor.values().length;i++)
		{
			System.out.println("序列数"+LxzColor.values()[i].ordinal());
			System.out.println(LxzColor.values()[i]);
			System.out.println(LxzColor.values()[i].toString(ColorAdapter.RGB));
			System.out.println(LxzColor.values()[i].toString(ColorAdapter.HTML));
			System.out.println(LxzColor.values()[i].toString());
			System.out.println("----------------------");
		}	
	}
}

 

 

输出结果

[Lutils.LxzColor;@61de33
Black
Red
Blue
----------------------
序列数0
Red
[255,0,0]
#ff0000
Red
----------------------
序列数1
Green
[0,255,0]
#00ff00
Green
----------------------
序列数2
Blue
[0,0,255]
#0000ff
Blue
----------------------
序列数3
Black
[0,0,0]
#000000
Black
----------------------
序列数4
Purple
[111,0,210]
#6F00D2
Purple
----------------------
序列数5
Yello
[249,249,0]
#F9F900
Yello
----------------------
序列数6
White
[255,255,255]
#FFFFFF
White
----------------------

 

0
7
分享到:
评论

相关推荐

    java 编程入门思考

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查...

    Java初学者入门教学

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查...

    java联想(中文)

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查...

    JAVA_Thinking in Java

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查...

    Java2核心技术.part5

    3.5.8枚举类型 3.6字符串 3.6.1代码点与代码单元 3.6.2子串 3.6.3字符串编辑 3.6.4拼接 3.6.5检测字符串是否相等 3.6.6阅读联机API文档 3.7输入输出 3.7.1读取输入 3.7.2格式化输出 ...

    Thinking in Java 中文第四版+习题答案

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查 ...

    Thinking in Java简体中文(全)

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查...

    Java2核心技术.part3

    3.5.8枚举类型 3.6字符串 3.6.1代码点与代码单元 3.6.2子串 3.6.3字符串编辑 3.6.4拼接 3.6.5检测字符串是否相等 3.6.6阅读联机API文档 3.7输入输出 3.7.1读取输入 3.7.2格式化输出 ...

    Java2核心技术.part1

    3.5.8枚举类型 3.6字符串 3.6.1代码点与代码单元 3.6.2子串 3.6.3字符串编辑 3.6.4拼接 3.6.5检测字符串是否相等 3.6.6阅读联机API文档 3.7输入输出 3.7.1读取输入 3.7.2格式化输出 3.8控制...

    Java2核心技术.part6

    3.5.8枚举类型 3.6字符串 3.6.1代码点与代码单元 3.6.2子串 3.6.3字符串编辑 3.6.4拼接 3.6.5检测字符串是否相等 3.6.6阅读联机API文档 3.7输入输出 3.7.1读取输入 3.7.2格式化输出 ...

    Java2核心技术.part4

    3.5.8枚举类型 3.6字符串 3.6.1代码点与代码单元 3.6.2子串 3.6.3字符串编辑 3.6.4拼接 3.6.5检测字符串是否相等 3.6.6阅读联机API文档 3.7输入输出 3.7.1读取输入 3.7.2格式化输出 ...

    Java2核心技术.part2

    3.5.8枚举类型 3.6字符串 3.6.1代码点与代码单元 3.6.2子串 3.6.3字符串编辑 3.6.4拼接 3.6.5检测字符串是否相等 3.6.6阅读联机API文档 3.7输入输出 3.7.1读取输入 3.7.2格式化输出 ...

    Java核心技术II(第8版)

    11.2.3 一个示例:动态Java代码生成 11.3 使用注解 11.3.1 一个示例:注解事件处理器 11.4 注解语法 11.5 标准注解 11.5.1 用于编译的注解 11.5.2 用于管理资源的注解 11.5.3 元注解 11.6 源码级注解处理 11.7 字节...

    Think in Java(中文版)chm格式

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 ...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查...

    Scala程序设计(第2版)

    22.4 AnyVal类型与Java原生类型 433 22.5 Java代码中的Scala名称 433 22.6 本章回顾与下一章提要 434 第23章 应用程序设计 435 23.1 回顾之前的内容 435 23.2 注解 437 23.3 Trait即模块 441 ...

    ThinkInJava

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查...

    thinkinjava

    10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查...

Global site tag (gtag.js) - Google Analytics