实用工具类代码块

package com.company.peroject.moduel.util;

import com.google.common.collect.Lists;
import com.ibatis.common.beans.Probe;
import com.ibatis.common.beans.ProbeFactory;
import jodd.datetime.JDateTime;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

import java.util.*;
import java.util.concurrent.ConcurrentHashMap;

/**
* Created by chaowen on 2017/8/13.
*/
public class CommonUtil {

public static final Collection NULL_COLLECTION = new NullCollection();

private static final Probe PROBE = ProbeFactory.getProbe();

/**
 * @author chaowen
 *
 *         <pre>
 * 批量获取map中的值
 * </pre>
 *
 * @param <K>
 * @param <V>
 * @param keys
 * @param source
 * @return
 */
public static <K, V> List<V> getAllFormMap(List<K> keys, Map<K, V> source) {
    List<V> values = Collections.emptyList();
    if (keys != null && !keys.isEmpty() && source != null
            && !source.isEmpty()) {
        values = new ArrayList<V>();
        for (K k : keys) {
            values.add(source.get(k));
        }
    }
    return values;
}


/**
 * @author chaowen
 *
 *         <pre>
 * 从List中获取valueProp组成一个新的list
 * </pre>
 *
 * @param <E>
 * @param list
 * @param valueProp
 * @return
 */
public static <E, K> List<K> getValueList(List<E> list, String valueProp) {
    List<K> valueList = Collections.emptyList();
    if (CollectionUtils.isNotEmpty(list)) {
        list.removeAll(nullCollection());
        valueList = new ArrayList<K>(list.size());
        for (E e : list) {
            @SuppressWarnings("unchecked")
            K value = (K) PROBE.getObject(e, valueProp);
            valueList.add(value);
        }
    }
    return valueList;
}


/**
 * @author chaowen
 *
 *         <pre>
 * 用list生成一个map,keyProp 为指定的key,valueProp 为指定是value
 * </pre>
 *
 * @param <K>
 * @param <V>
 * @param <E>
 * @param list
 * @param keyProp
 * @param valueProp
 * @return
 */
@SuppressWarnings("unchecked")
public static <K, V, E> Map<K, V> listforMap(List<E> list, String keyProp,
                                             String valueProp) {
    Map<K, V> rs = new HashMap<>();

    if (CollectionUtils.isNotEmpty(list)) {

        ConcurrentHashMap<K, V> map = new ConcurrentHashMap<K, V>();

        list.removeAll(nullCollection());
        for (E object : list) {
            K key = (K) PROBE.getObject(object, keyProp);
            Object value = null;
            if (StringUtils.isEmpty(valueProp)) {
                value = object;
            } else {
                value = PROBE.getObject(object, valueProp);
            }
            map.put(key, (V) value);
        }
        rs = map;
    }
    return rs;
}


/**
 * @author chaowen
 *
 *         <pre>
 * list 生成一个Map<K,List<V>>
 * </pre>
 *
 * @param <K>
 * @param <V>
 * @param <E>
 * @param list
 * @param keyProp
 * @param valueProp
 * @return
 */
@SuppressWarnings("unchecked")
public static <K, V, E> Map<K, List<V>> listforListMap(List<E> list,
                                                       String keyProp, String valueProp) {
    Map<K, List<V>> map = Collections.emptyMap();
    if (CollectionUtils.isNotEmpty(list)) {
        list.removeAll(nullCollection());
        map = new HashMap<K, List<V>>(list.size());
        V value = null;
        for (E object : list) {
            K key = (K) PROBE.getObject(object, keyProp);
            if (StringUtils.isEmpty(valueProp)) {
                value = (V) object;
            } else {
                value = (V) PROBE.getObject(object, valueProp);
            }
            List<V> values = map.get(key);
            if (values == null) {
                values = new ArrayList<V>();
            }
            values.add(value);
            map.put(key, values);
        }
    }
    return map;
}

@SuppressWarnings("unchecked")
public static final <T> Collection<T> nullCollection() {
    return (List<T>) NULL_COLLECTION;
}

public static String getId(){
    return UUID.randomUUID().toString().replace("-","");
}

public static List<String> stringToList(String in){
    String[] ids = in.split(",");
    return Lists.newArrayList(ids);
}

public static void main(String[] args) {
    JDateTime jDateTime = new JDateTime(new Date());
    System.out.println(jDateTime.toString());
    jDateTime.setDay(1);
    jDateTime.setHour(0);
    jDateTime.setMinute(0);
    jDateTime.setSecond(0);
    System.out.println(jDateTime.toString());
    jDateTime.addMonth(1);
    System.out.println(jDateTime.toString());
}

}

package com.company.peroject.moduel.util;

import java.io.Serializable;
import java.util.AbstractList;
import java.util.RandomAccess;

public class NullCollection extends AbstractList
implements RandomAccess, Serializable {

private static final long serialVersionUID = 5206887786441397812L;

@Override
public Object get(int index) {
    return null;
}

@Override
public int size() {
    return 1;
}

public boolean contains(Object obj) {
    return null == obj;
}

private Object readResolve() {
    return null;
}

}

很实用的工具类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值