代码如下:
package com.jue.test; public enum DownloadStatus { STATUS_DOWNLOAD_ING("下载中", "下载时的icon", "点击暂停"), STATUS_DOWNLOAD_DONE("下载已经完成", "完成的icon", "点击安装"), STATUS_DOWNLOAD_NEW("新建任务","新的下载任务icon", "点击下载"), STATUS_DOWNLOAD_PAUSE("暂停下载", "暂停的icon","点击继续下载"); String title; String iconDes; String action; private DownloadStatus(String title, String iconDes, String action) { this.title = title; this.iconDes = iconDes; this.action = action; } }
测试调用如下:
package com.jue.test; public class Video { public DownloadStatus status = DownloadStatus.STATUS_DOWNLOAD_NEW; public static void main(String[] args) { Video video = new Video(); video.status = DownloadStatus.STATUS_DOWNLOAD_ING; display(video.status.title, video.status.iconDes, video.status.action); } public static void display(String status, String iconDes, String action) { System.out.println("现在是 [" + status + "] 状态,显示的是[" + iconDes + "],点击会触发 [" + action+"]"); } }
优点如下:
- 枚举的状态值本身携带了状态的一些信息,保证了数据的一致性,摒弃了大量的if else或switch case判断。