Java5 以前 switch(key)中,key只能是 byte、short、char、int。
从 Java 5 开始,Java 中引入了枚举类型, key也可以是 enum 类型。
从 Java 7 开始,key 还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。
JDK1.7开始支持String,但不允许为null,原理是借助 hashcode( ) 来实现
注:此代码编译时使用的jdk版本为1.8.
/** * 创建NewsDao实例的工厂方法 */ public static NewsDao getInstance(String key) { //return new NewsDaoImpl(); switch (key) { case "mysql": return new NewsDaoMySqlImpl(); case "oracle": return new NewsDaoOracleImpl(); case "redis": return new NewsDaoRedisImpl(); default: throw new RuntimeException("无效的数据库类型:"+key+" ,DAO获取失败"); } }