刚学枚举类型是总觉的枚举类型似乎多此一举,一直在想枚举类型有什么意义。
看到网络上很多枚举类型的例子,觉的很适合颜色调配这个案例,感觉枚举最大的意义是可以像对象一样操作。
自己结合枚举的优点写了一个实用的例子,代码会优雅和精简了许多,供参考。
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
----------------------
分享到:
相关推荐
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 造型前的检查...
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 造型前的检查...
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 造型前的检查...
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 造型前的检查...
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格式化输出 ...
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 造型前的检查 ...
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 造型前的检查...
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 造型前的检查...
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.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控制...
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.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.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格式化输出 ...
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 字节...
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 ...
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 造型前的检查...
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 ...
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 造型前的检查...
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 造型前的检查...