不同类的值之间的转换?

说,我有一个字符串值“CHAR”、“VARCHAR”、“NUMBER”等,从一侧和 JDBCType.CHAR、JDBCType.VARCHAR、JDBCType.INTEGER 从另一侧。


我可以简单地实现转换:


public static JDBCType convertFromStringToJDBCType(String datatype) {

switch(datatype) {

  case "VARCHAR":

    result = JDBCType.VARCHAR;

    break;

  case "NUMBER":

    result = JDBCType.INTEGER;

    break;

...

}

这种方法的缺点是我必须构建与该函数完全相反的函数才能将值转换回来。


实现这种转换的最佳方式是什么?


白衣染霜花
浏览 178回答 3
3回答

白板的微信

只要你不开始在不同的地方“复制”它,“中心”的 switch 语句就没有错。单个开关是可以的,通常当“相同”开关代码存在于多个地方时,“麻烦”就会开始。如果有的话,您可以考虑将此映射信息放入不同的映射typesByString.put("VARCHAR", JDBCType.VARCHAR)等。如果你想在“两个”方向,你想看看(惊喜)比迪地图!

慕容3067478

您还可以使用内置valueOf(String)的方法Enum。喜欢result = JDBCType.valueOf(datatype);

暮色呼如

您可以创建Map<String, JDBCType>并使用它来将key转换为 value并将value转换为 key。如果您发现key 的 value很慢,那么您可以创建另一个相反的Map<JDBCType, String>.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java