电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java 利用枚舉實(shí)現(xiàn)接口進(jìn)行統(tǒng)一管理

瀏覽:4日期:2022-08-16 11:25:26
枚舉公共接口

public interface IPairs<K, V, C extends Enum> { /** * 返回枚舉對(duì)象 * */ C get(); /** * 返回枚舉項(xiàng)的 key * */ K key(); /** * 返回枚舉項(xiàng)的 value * */ V value();}狀態(tài)枚舉類

public enum StatusEnum implements IPairs<Integer, String, StatusEnum> { DISABLED(0, 'record has been disabled'), ENABLED(1, 'record has been enabled'), DELETES(9, 'record has been deleted') ; private int code; private String desc; StatusEnum(int code, String desc) { this.code = code; this.desc = desc; } public StatusEnum get() { return this; } @Override public Integer key() { return this.code; } @Override public String value() { return this.desc; }}響應(yīng)枚舉類

public enum ResponseEnum implements IPairs<Integer, String, ResponseEnum> { SUCCESS(10000, 'success'), FAILED(10001, 'failed') ; private int code; private String desc; ResponseEnum(int code, String desc) { this.code = code; this.desc = desc; } public ResponseEnum get() { return this; } @Override public Integer key() { return this.code; } @Override public String value() { return this.desc; }}代碼驗(yàn)證

public class AnswerApp { public static void main(String[] args) { invoke(StatusEnum.ENABLED); System.out.println(); response(ResponseEnum.SUCCESS); } private static void response(IPairs pairs) { System.out.println(pairs.get() == ResponseEnum.SUCCESS); System.out.println(MessageFormat.format('key: {0}, value: {1}', pairs.key(), pairs.value())); } private static void invoke(IPairs pairs) { System.out.println(pairs.get() == StatusEnum.ENABLED); System.out.println(MessageFormat.format('key: {0}, value: {1}', pairs.key(), pairs.value())); }} 程序運(yùn)行結(jié)果

truekey: 1, value: record has been enabledtruekey: 10,000, value: success結(jié)論:

項(xiàng)目中使用同一接口管理枚舉類, 在方法參數(shù)中使用接口而不是用具體的枚舉對(duì)象作為入?yún)ⅲ?可以一定程度上降低程序的耦合性

補(bǔ)充:java中enum類的兩種接口的實(shí)現(xiàn)方法

和普通 Java 類一樣,枚舉類可以實(shí)現(xiàn)一個(gè)或多個(gè)接口

若每個(gè)枚舉值在調(diào)用實(shí)現(xiàn)的接口方法呈現(xiàn)相同的行為方式,則只 要統(tǒng)一實(shí)現(xiàn)該方法即可。

若需要每個(gè)枚舉值在調(diào)用實(shí)現(xiàn)的接口方法呈現(xiàn)出不同的行為方式, 則可以讓每個(gè)枚舉值分別來實(shí)現(xiàn)該方法

1、enum關(guān)鍵字定義枚舉類實(shí)現(xiàn)接口的情況

```javainterface info{ void show();}enum Season1 implements info{ //用enum關(guān)鍵字后,首先要把類里面定義的對(duì)象提到最前面,將一些重復(fù) // 的前綴的去掉,每個(gè)對(duì)象之間要用逗號(hào)隔開,最后一個(gè)用分號(hào) //后面的就沒有什么變化 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; } //注意這時(shí)候沒有重寫toString方法,即但是依然可以輸出對(duì)象 // 的內(nèi)容。即enum類不是繼承object類,而是默認(rèn)繼承 //lang包下的enum類 @Override public void show() { System.out.println('這是一個(gè)季節(jié)'); }}

enum接口的實(shí)現(xiàn)和普通類實(shí)現(xiàn)沒有什么區(qū)別

二、讓 枚舉類的對(duì)象分別去實(shí)現(xiàn)接口中的抽象方法

```java```java/** * @author LYH_351147852@QQ.COM * @create 2019-10-05 21:39 */public class SeasonTest1 { public static void main(String[] args) { Season1[] values = Season1.values(); for (int i = 0;i < values.length;i++){ values[i].show(); } }}interface info{ void show();}enum Season1 implements info{ //用enum關(guān)鍵字后,首先要把類里面定義的對(duì)象提到最前面,將一些重復(fù) // 的前綴的去掉,每個(gè)對(duì)象之間要用逗號(hào)隔開,最后一個(gè)用分號(hào) //后面的就沒有什么變化 SPRING ('春天','春意暖暖'){ @Override public void show() { System.out.println('春天美好'); } }, SUMMER ('夏天','夏日炎炎'){ @Override public void show() { System.out.println('夏天炎熱'); } }, AUTUMN ('秋天','秋高氣爽'){ @Override public void show() { System.out.println('秋天寒冷'); } }, WINTER ('冬天','寒風(fēng)呼嘯'){ @Override public void show() { System.out.println('寒風(fēng)呼嘯'); } }; 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; } //注意這時(shí)候沒有重寫toString方法,即但是依然可以輸出對(duì)象 // 的內(nèi)容。即enum類不是繼承object類,而是默認(rèn)繼承 //lang包下的enum類// @Override// public void show() {// System.out.println('這是一個(gè)季節(jié)');// }}

在每一個(gè)對(duì)象逗號(hào)前面加一個(gè)大括號(hào),然后里面寫上重寫的方法

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 聚丙烯酰胺_厂家_价格-河南唐达净水材料有限公司 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 | 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 防锈油-助焊剂-光学玻璃清洗剂-贝塔防锈油生产厂家 | 浇注料-高铝砖耐火砖-郑州凯瑞得窑炉耐火材料有限公司 | 厦门网站建设_厦门网站设计_小程序开发_网站制作公司【麦格科技】 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | 长沙广告公司|长沙广告制作设计|长沙led灯箱招牌制作找望城湖南锦蓝广告装饰工程有限公司 | 江苏远邦专注皮带秤,高精度皮带秤,电子皮带秤研发生产 | 铝机箱_铝外壳加工_铝外壳厂家_CNC散热器加工-惠州市铂源五金制品有限公司 | 无锡不干胶标签,卷筒标签,无锡瑞彩包装材料有限公司 | 高压直流电源_特种变压器_变压器铁芯-希恩变压器定制厂家 | 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 浙江上沪阀门有限公司 | 真空包装机-诸城市坤泰食品机械有限公司 | 电主轴-高速精密电主轴-高速电机厂家-瑞德沃斯品牌有限公司 | 中细软知识产权_专业知识产权解决方案提供商 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 广东青藤环境科技有限公司-水质检测| 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 电线电缆厂家|沈阳电缆厂|电线厂|沈阳英联塑力线缆有限公司 | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 阳光模拟试验箱_高低温试验箱_高低温冲击试验箱_快速温变试验箱|东莞市赛思检测设备有限公司 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 踏板力计,制动仪,非接触多功能速度仪,逆反射系数测试仪-创宇 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 代理记账_公司起名核名_公司注册_工商注册-睿婕实业有限公司 | 天然气分析仪-液化气二甲醚分析仪|传昊仪器 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 |