通过枚举类对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的形式,也可以实现。
阅读全文
0 0
- 通过枚举类对if-else的改造
- if..else..if 对三个变量的作用
- if......if和if......else if......else if的区别
- if , if else , if else if , if的嵌套
- if,else if,else的执行
- if else if else 语句的拓展
- 如何通过反射来代替N多的if...else
- 如何通过反射来代替N多的if...else
- 对if/else重构
- if;if else;if else if 循环结构的用法
- Oracle的if else if...
- Velocity的if...else
- if else的使用
- ant的if-else
- if else的用法
- 有趣的if-else
- if-else的使用
- 简单的if ... else ...
- Hinton《面向机器学习的神经网络》中文版 视频教程
- SVM支持向量机模型
- Codeforces Round #449 (Div. 2)
- Python学习之基本数据类型(一)
- codeforces 451A Game With Sticks
- 通过枚举类对if-else的改造
- java详解 --- 集合之数组实现和链表实现
- 从Activity往Fragment传值
- 图片压缩
- JumpPointSearchPlus with GoalBounding 学习笔记2
- POJ 2312 Battle City
- 深度学习之RBM
- Pull Request 的概述
- Java之JTree