通过枚举类对if-else的改造

来源:互联网 发布:js 代码高亮插件 编辑:程序博客网 时间:2024/06/18 13:56

如何通过枚举,改造多重 if-else?

改造前的代码

/** * 根据“文件名的后缀”获取文件内容类型 *  * @param fileName *            文件名 * @return 返回文件类型 */public static String getContentType(String fileName) {String contentType = "application/octet-stream";if (fileName.lastIndexOf(".") < 0)return contentType;fileName = fileName.toLowerCase();fileName = fileName.substring(fileName.lastIndexOf(".") + 1);if (fileName.equals("html") || fileName.equals("htm") || fileName.equals("shtml")) {contentType = "text/html";} else if (fileName.equals("apk")) {contentType = "application/vnd.android.package-archive";} else if (fileName.equals("sis")) {contentType = "application/vnd.symbian.install";} else if (fileName.equals("sisx")) {contentType = "application/vnd.symbian.install";} else if (fileName.equals("exe")) {contentType = "application/x-msdownload";} else if (fileName.equals("msi")) {contentType = "application/x-msdownload";} else if (fileName.equals("css")) {contentType = "text/css";} else if (fileName.equals("xml")) {contentType = "text/xml";} else if (fileName.equals("gif")) {contentType = "image/gif";} else if (fileName.equals("jpeg") || fileName.equals("jpg")) {contentType = "image/jpeg";} else if (fileName.equals("js")) {contentType = "application/x-javascript";} else if (fileName.equals("atom")) {contentType = "application/atom+xml";} else if (fileName.equals("rss")) {contentType = "application/rss+xml";} else if (fileName.equals("mml")) {contentType = "text/mathml";} else if (fileName.equals("txt")) {contentType = "text/plain";} else if (fileName.equals("jad")) {contentType = "text/vnd.sun.j2me.app-descriptor";} else if (fileName.equals("wml")) {contentType = "text/vnd.wap.wml";} else if (fileName.equals("htc")) {contentType = "text/x-component";} else if (fileName.equals("png")) {contentType = "image/png";} else if (fileName.equals("tif") || fileName.equals("tiff")) {contentType = "image/tiff";} else if (fileName.equals("wbmp")) {contentType = "image/vnd.wap.wbmp";} else if (fileName.equals("ico")) {contentType = "image/x-icon";} else if (fileName.equals("jng")) {contentType = "image/x-jng";} else if (fileName.equals("bmp")) {contentType = "image/x-ms-bmp";} else if (fileName.equals("svg")) {contentType = "image/svg+xml";} else if (fileName.equals("jar") || fileName.equals("var") || fileName.equals("ear")) {contentType = "application/java-archive";} else if (fileName.equals("doc")) {contentType = "application/msword";} else if (fileName.equals("pdf")) {contentType = "application/pdf";} else if (fileName.equals("rtf")) {contentType = "application/rtf";} else if (fileName.equals("xls")) {contentType = "application/vnd.ms-excel";} else if (fileName.equals("ppt")) {contentType = "application/vnd.ms-powerpoint";} else if (fileName.equals("rar")) {contentType = "application/x-rar-compressed";} else if (fileName.equals("swf")) {contentType = "application/x-shockwave-flash";} else if (fileName.equals("rpm")) {contentType = "application/x-redhat-package-manager";} else if (fileName.equals("der") || fileName.equals("pem") || fileName.equals("crt")) {contentType = "application/x-x509-ca-cert";} else if (fileName.equals("xhtml")) {contentType = "application/xhtml+xml";} else if (fileName.equals("zip")) {contentType = "application/zip";} else if (fileName.equals("mid") || fileName.equals("midi") || fileName.equals("kar")) {contentType = "audio/midi";} else if (fileName.equals("mp3")) {contentType = "audio/mpeg";} else if (fileName.equals("ogg")) {contentType = "audio/ogg";} else if (fileName.equals("m4a")) {contentType = "audio/x-m4a";} else if (fileName.equals("ra")) {contentType = "audio/x-realaudio";} else if (fileName.equals("mp4")) {contentType = "video/mp4";} else if (fileName.equals("mpeg") || fileName.equals("mpg")) {contentType = "video/mpeg";} else if (fileName.equals("mov")) {contentType = "video/quicktime";} else if (fileName.equals("flv")) {contentType = "video/x-flv";} else if (fileName.equals("m4v")) {contentType = "video/x-m4v";} else if (fileName.equals("mng")) {contentType = "video/x-mng";} else if (fileName.equals("asx") || fileName.equals("asf")) {contentType = "video/x-ms-asf";} else if (fileName.equals("wmv")) {contentType = "video/x-ms-wmv";} else if (fileName.equals("avi")) {contentType = "video/x-msvideo";}return contentType;}



不知道有没有恶心到你

改造后:

/** * 根据“文件名的后缀”获取文件内容类型 *  * @param fileFileName *            文件名 * @return 返回文件类型 */public static String getContentType(String fileName) {String contentType = "application/octet-stream";/* 无后缀 */int i = fileName.lastIndexOf(".");if (i < 0) {return contentType;}fileName = fileName.substring(fileName.lastIndexOf(".") + 1).toUpperCase();contentType = MimeType.get(fileName);return contentType;}

瞬间有没有看上去更舒服的赶脚。

/** * @ClassName MimeType * @Description Mime-Type(Content-Type)文件扩展名 * @author Cheng.Wei * @date 2017年12月14日 下午2:51:28 *  */public enum MimeType {HTM("text/html"),HTML("text/html"),SHTML("text/html"),APK("application/vnd.android.package-archive"),SIS("application/vnd.symbian.install"),SISX("application/vnd.symbian.install"),EXE("application/x-msdownload"),MSI("application/x-msdownload"),CSS("text/css"),XML("text/xml"),GIF("image/gif"),JPG("image/jpeg"),JPEG("image/jpeg"),JS("application/x-javascript"),ATOM("application/atom+xml"),RSS("application/rss+xml"),MML("text/mathml"),TXT("text/plain"),JAD("text/vnd.sun.j2me.app-descriptor"),WML("text/vnd.wap.wml"),HTC("text/x-component"),PNG("image/png"),TIF("image/tiff"),TIFF("image/tiff"),WBMP("image/vnd.wap.wbmp"),ICO("image/x-icon"),JNG("image/x-jng"),BMP("image/x-ms-bmp"),SVG("image/svg+xml"),JAR("application/java-archive"),VAR("application/java-archive"),EAR("application/java-archive"),DOC("application/msword"),PDF("application/pdf"),RTF("application/rtf"),XLS("application/vnd.ms-excel"),PPT("application/vnd.ms-powerpoint"),RAR("application/x-rar-compressed"),SWF("application/x-shockwave-flash"),RPM("application/x-redhat-package-manager"),DER("application/x-x509-ca-cert"),PEM("application/x-x509-ca-cert"),CRT("application/x-x509-ca-cert"),XHTML("application/xhtml+xml"),ZIP("application/zip"),MID("audio/midi"),MIDI("audio/midi"),KAR("audio/midi"),MP3("audio/mpeg"),OGG("audio/ogg"),M4A("audio/x-m4a"),RA("audio/x-realaudio"),MP4("video/mp4"),MPEG("video/mpeg"),MOV("video/quicktime"),FLV("video/x-flv"),M4V("video/x-m4v"),MNG("video/x-mng"),ASX("video/x-ms-asf"),ASF("video/x-ms-asf"),WMV("video/x-ms-wmv"),AVI("video/x-msvideo");public static boolean contains(String type){for(MimeType mimeType : MimeType.values()){if(mimeType.name().equals(type)){return true;}}return false;}  public  String mime;MimeType(String mime) {this.mime = mime;}public static String get(String suffix) {if(contains(suffix)) {return MimeType.valueOf(suffix).mime;}return "application/octet-stream";}}

当然还有比方 key-value的形式,也可以实现。


原创粉丝点击