介绍
这篇文章给大家介绍如何在Java中利用枚举对接口进行统一管理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
枚举公共接口
public interface IPairs, { ,/* * ,,*,返回枚举对象 ,,*,*/C 才能得到(); ,/* * ,,*,返回枚举项的,钥匙 ,,*,*/K 才能;关键(); ,/* * ,,*,返回枚举项的,价值 ,,*,*/V 才能;价值(); }
状态枚举类
public enum StatusEnum implements IPairs<整数,字符串,,StatusEnum>, { 残疾人才能(0,,“record  has been disabled"), 启用才能(1,“record  has been enabled"), 删除才能(9,“record  has been deleted") ,,, private 才能;int 代码; private 才能;String  desc; StatusEnum才能(int 代码,,String desc), { ,,,this.code =,代码; ,,,this.desc =, desc; ,,} public 才能;StatusEnum get (), { ,,,return ; ,,} @Override才能 public 才能;Integer 关键(),{ ,,,return this.code; ,,} @Override才能 public 才能;String 价值(),{ ,,,return this.desc; ,,} }
响应枚举类
public enum ResponseEnum implements IPairs<整数,字符串,,ResponseEnum>, { 成功才能(10000年,“success"), 失败的才能(10001年,“failed") ,,, private 才能;int 代码; private 才能;String  desc; ResponseEnum才能(int 代码,,String desc), { ,,,this.code =,代码; ,,,this.desc =, desc; ,,} public 才能;ResponseEnum get (), { ,,,return ; ,,} @Override才能 public 才能;Integer 关键(),{ ,,,return this.code; ,,} @Override才能 public 才能;String 价值(),{ ,,,return this.desc; ,,} }
代码验证
public class AnswerApp { public 才能;static  void main (String [], args), { ,,,调用(StatusEnum.ENABLED); ,,,System.out.println (); ,,,的反应(ResponseEnum.SUCCESS); ,,} ,, private 才能;static  void 响应(IPairs 对),{ ,,,System.out.println (pairs.get (),==, ResponseEnum.SUCCESS); ,,,System.out.println (MessageFormat.format(“关键:{0},,值:,{1},,,pairs.key (),, pairs.value ())); ,,} ,, private 才能;static  void 调用(IPairs 对),{ ,,,System.out.println (pairs.get (),==, StatusEnum.ENABLED); ,,,System.out.println (MessageFormat.format(“关键:{0},,值:,{1},,,pairs.key (),, pairs.value ())); ,,} }
程序运行结果
关键:1,价值:record has been 启用 真正的 关键:10000年,,,的值:,成功
结论:
项目中使用同一接口管理枚举类,在方法参数中使用接口而不是用具体的枚举对象作为入参,可以一定程度上降低程序的耦合性
<强>补充:java中枚举类的两种接口的实现方法强>
和普通java类一样,枚举类可以实现一个或多个接口
若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可。
若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法
1, enum关键字定义枚举类实现接口的情况
“java” {interface 信息 void 才能显示(); } {enum Season1  implements 信息//用枚举才能关键字后,首先要把类里面定义的对象提到最前的面,将一些重复//,才能的前缀的去掉,每个对象之间要用逗号隔开,最后一个用分号//后才能面的就没有什么变化 ,,SPRING (“春天“,“春意暖暖“), ,,SUMMER (“春天“,“春意暖暖“), ,,AUTUMN (“春天“,“春意暖暖“), ,,WINTER (“春天“,“春意暖暖“); private 才能final String  seasonName; private 才能final String  seasonDeac; private 才能;Season1 (String seasonName String seasonDeac) { 时间=this.seasonDeac 才能;seasonDeac; 时间=this.seasonName 才能;seasonName; ,,} public 才能;String  getSeasonDeac (), { ,,,return seasonDeac; ,,} public 才能;String  getSeasonName (), { ,,,return seasonName; null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null如何在Java中利用枚举对接口进行统一管理