色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Java 利用枚舉實現接口進行統一管理

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

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

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; }}響應枚舉類

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; }}代碼驗證

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())); }} 程序運行結果

truekey: 1, value: record has been enabledtruekey: 10,000, value: success結論:

項目中使用同一接口管理枚舉類, 在方法參數中使用接口而不是用具體的枚舉對象作為入參, 可以一定程度上降低程序的耦合性

補充:java中enum類的兩種接口的實現方法

和普通 Java 類一樣,枚舉類可以實現一個或多個接口

若每個枚舉值在調用實現的接口方法呈現相同的行為方式,則只 要統一實現該方法即可。

若需要每個枚舉值在調用實現的接口方法呈現出不同的行為方式, 則可以讓每個枚舉值分別來實現該方法

1、enum關鍵字定義枚舉類實現接口的情況

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

enum接口的實現和普通類實現沒有什么區別

二、讓 枚舉類的對象分別去實現接口中的抽象方法

```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關鍵字后,首先要把類里面定義的對象提到最前面,將一些重復 // 的前綴的去掉,每個對象之間要用逗號隔開,最后一個用分號 //后面的就沒有什么變化 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 ('冬天','寒風呼嘯'){ @Override public void show() { System.out.println('寒風呼嘯'); } }; 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; } //注意這時候沒有重寫toString方法,即但是依然可以輸出對象 // 的內容。即enum類不是繼承object類,而是默認繼承 //lang包下的enum類// @Override// public void show() {// System.out.println('這是一個季節');// }}

在每一個對象逗號前面加一個大括號,然后里面寫上重寫的方法

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關文章:
主站蜘蛛池模板: 在线观看免费国产成人软件 | 国产免费久久精品久久久 | 一级特级欧美aaaaa毛片 | 国产精品福利午夜h视频 | 99久久国产免费福利 | 日韩女人做爰大片 | 美女个护士一级毛片亚洲 | 久久久久久久久久久96av | 日本道在线播放 | 欧美成人观看免费版 | 亚洲va老文色欧美黄大片人人 | 亚洲六月丁香六月婷婷蜜芽 | 成人国产精品免费视频 | 香蕉久久一区二区不卡无毒影院 | 国产九九视频在线观看 | 久久99精品久久久久久国产越南 | 久久久久久一级毛片免费野外 | 欧美日韩中文一区二区三区 | 久久性妇女精品免费 | 欧美日韩高清观看一区二区 | 国产在线高清视频 | 337p粉嫩大胆噜噜噜鲁 | 国产午夜毛片v一区二区三区 | 日韩三级视频在线观看 | 99爱视频精品免视看 | 亚洲日韩视频 | 视频一区色眯眯视频在线 | 99色视频在线 | 成人精品一区久久久久 | 一区二区三区四区免费视频 | 亚洲高清一区二区三区久久 | 久久伊人男人的天堂网站 | 国产亚洲欧美日韩在线观看一区二区 | 成熟女人免费一级毛片 | 欧美一级片在线看 | 久久精品视频在线播放 | 九九九九在线精品免费视频 | 国产理论最新国产精品视频 | 国产免费久久精品久久久 | www.欧美成人 | 米奇888在线播放欧美 |