예제 #1
0
 /**
  * 将一个集合变成 Map。
  *
  * @param typeOfMap Map 的类型
  * @param coll 集合对象
  * @param keyFieldName 采用集合中元素的哪个一个字段为键。
  * @return Map 对象
  */
 public static <T extends Map<Object, Object>> Map<?, ?> coll2map(
     Class<T> typeOfMap, Collection<?> coll, String keyFieldName) {
   if (null == coll) return null;
   Map<Object, Object> map = createMap(typeOfMap);
   if (coll.size() > 0) {
     Iterator<?> it = coll.iterator();
     Object obj = it.next();
     Object key = LE.getPropertyValue(obj, keyFieldName);
     map.put(key, obj);
     for (; it.hasNext(); ) {
       obj = it.next();
       key = LE.getPropertyValue(obj, keyFieldName);
       map.put(key, obj);
     }
   }
   return map;
 }
예제 #2
0
  /**
   * 两个对象必须是相同类型的Bean 即getClass()相等,具备相同的方法属性签名,进行copy动作,可用于clone方法的内部实现
   *
   * @param src 源对象
   * @param to 目标对象(必须已经实例化)
   */
  public static void copy(Object src, Object to) {

    if (src.getClass() != to.getClass()) return;
    String[] props = LE.getPropertyNames(to.getClass(), true);
    for (String prop : props) {
      Object value = LE.getPropertyValue(src, prop);
      LE.setPropertyValue(to, prop, value);
    }
  }
예제 #3
0
 /**
  * 将一个数组变成 Map
  *
  * @param typeOfMap Map 的类型
  * @param array 数组
  * @param keyFieldName 采用集合中元素的哪个一个字段为键。
  * @return Map 对象
  */
 public static <T extends Map<Object, Object>> Map<?, ?> array2map(
     Class<T> typeOfMap, Object array, String keyFieldName) {
   if (array == null) return null;
   Map<Object, Object> map = createMap(typeOfMap);
   int len = Array.getLength(array);
   if (len > 0) {
     Object obj = Array.get(array, 0);
     // CE<?> ce = CE.of(obj.getClass());
     for (int i = 0; i < len; i++) {
       obj = Array.get(array, i);
       Object key = LE.getPropertyValue(obj, keyFieldName);
       map.put(key, obj);
     }
   }
   return map;
 }