Java反应类型获取并转换集合
2016-06-23 15:08
453 查看
我们通常存放在数据库记录的String类型很多时候是存放的是一个数组集合,或许用逗号或者是分号把它们分开。例如1,2,3,4,5的方式。我们在获取这个String类型的时候需要把它转换成Java集合。我在编写工具类的时候需要一个方法去解析这个String类型。
但是很多时候我可能需要转换的是个不确定的集合,可能转化为String类型的集合,也可能是Integer类型的集合,传统的方法分别去写两个方法,如下:
第二种方案,通过增加参数去控制转换的类型
但是很多时候我可能需要转换的是个不确定的集合,可能转化为String类型的集合,也可能是Integer类型的集合,传统的方法分别去写两个方法,如下:
// 转换成String类型的集合 public static List<String> parseStringToStringList(String context, String regex) { List<String> list = new ArrayList<String>(); if (StringUtils.isNotBlank(context)) { return list; } for (String s : context.split(regex)) { list.add(s); } return list; } // 转换成Integer集合 public static List<Integer> parseStringToIntegerList(String context, String regex) { List<Integer> list = new ArrayList<Integer>(); if (StringUtils.isNotBlank(context)) { return list; } for (String s : context.split(regex)) { list.add(Integer.valueOf(s)); } return list; }
第二种方案,通过增加参数去控制转换的类型
// 方法2 0为IntegerList,1为StringList 注意返回参数不能指定泛型类型 public static List<?> parseStringToList(String context, String regex, int type) { String[] strArr = context.split(regex); List list = null; if (type == 0) { list = new ArrayList<Integer>(); for (String s : strArr) { list.add(Integer.valueOf(s)); } } else if (type == 1) { list = new ArrayList<String>(); for (String s : strArr) { list.add(s); } } return list; }
// 方案3 泛型,但是要传入转化的类型,泛型类型是动态获取 @SuppressWarnings("unchecked") public static <T> List<T> parseStringToList(String context, String regex, Class<T> t) { List<T> list = new ArrayList<T>(); if (context == null || context.equals("")) return list; for (String s : context.split(regex)) { // 几种基本类型判断 if (t.getTypeName().equals(Integer.class.getTypeName())) { list.add((T) Integer.valueOf(s)); } if (t.getTypeName().equals(String.class.getTypeName())) { list.add((T) s); } } return list; }
相关文章推荐
- AIX下安装Powercenter产品提示INFA JDK HOME无效
- shiro-入门_1_与springmvc集成
- 利用spring+ibatiS技术,在spring中配置多个数据源,并实现动态切换。
- Java设计模式之--命令模式(Command)
- Struts2学习笔记(2)
- 干货来啦!JAVA常用代码(三)
- Java——分页
- Java中finally块与return之间的执行顺序
- Spring与Mybatis相结合实现多数据源切换功能
- Java基础:多线程
- reverse array java
- reverse array java
- SpringMVC框架
- struts2实现图片的上传以及下载功能
- MyBatis与SpringMVC相结合实现文件上传、下载功能
- java初始化过程中成员变量
- SpringMVC总结之配置
- SpringMVC中使用patchca生成验证码
- jdk环境变量
- 参加java培训的一些心得(学习方法)