一些小工具方法,能将容器转换成指定的数组类型有使用泛型

来源:互联网 发布:网络上流行的英文歌曲 编辑:程序博客网 时间:2024/06/06 17:26

如果大家有更好的方法,请回帖


/** *一个小工具类 *@author Hf *@mailto:huangfei8087@163.com * 在编程的过程中很多时候都希望能将    容器直接转成成为指定的数据,比如List<Integer>ids = new ArrayList<Integer>();则每次都需要手动创建一个Integer数组,然后在赋值。 collectionToArray 这个方法就实现了这个功能,可直接转换成为Integer数组*/public class Helper{/** *判断去空的方法 *@author Hf *@mailto:huangfei8087@163.com **/public static boolean isNull(Object value){if(value == null){return true ; }if(value.getClass().isArray()){if(Array.getLength(value) == 0){return true ; }}if(value instanceof Collection<?>){Collection<?> collection = (Collection<?>) value ;if(collection.isEmpty()){return true ;}}else if(value instanceof Map<?, ?>){Map<?, ?> map = (Map<?, ?>) value ;if(map.isEmpty()){return true ;}}else if(value instanceof String){String string = (String) value ;return isNull(string) ;}return false; }/** * 判断String类型是否为空  *@author Hf *@mailto:huangfei8087@163.com * */public static boolean isNull(String value){if(value == null){return true ;}if("".equals(value.trim())){return true ;}return false ;}/** *去掉数组中为NULL 的字段 *@author Hf *@mailto:huangfei8087@163.com * */public static <T> List<T> checkNull(T[] objs){if(isNull(objs)){return null;}List<T> objList = new ArrayList<T>(); for(T obj : objs){if(!isNull(obj)){objList.add(obj) ;   }}if(isNull(objList)){return null;}return objList ;  }/** *将容器转换成为数组 *@author Hf *@mailto:huangfei8087@163.com * */public static <T> T[] collectionToArray(Collection<T> coll){ T[] ts = null ;try {if(coll == null || coll.isEmpty()){return ts;}ts = collectionToArray(coll , null ) ;} catch (Exception e) {try {ts = collectionToArray(coll , Object.class ) ; } catch (Exception e2) { e2.printStackTrace( ) ; }}return ts ; }/** * 将容器转换成为指定数组 *@author Hf *@mailto:huangfei8087@163.com * */ public static <T> T[] collectionToArray(Collection<T> coll , Class<?> clazz){Iterator<T> iterator = coll.iterator() ;T[] ts = null ;int x=0 ;while(iterator.hasNext()){T tempT = iterator.next() ; if(x == 0){ts = (T[])Array.newInstance(clazz != null ? clazz : tempT.getClass() , coll.size()) ;}ts[x++] = tempT ; }return ts ;  }}

个人主页:http://my.csdn.net/hfmbook