java回调机制的使用

   学习过Hibernate和Spring等童鞋,经常见到的一个回调机制。

如下:

package com.easyway.commons.ispace.dev.collection;
/**
 * 对象比较的回调接口
 * @author longgangbai
 *
 */
public interface Predicate
{
    public abstract boolean evaluate(Object obj);
}



下面是以下回调的方法:



/**
   * 集合过滤的方法
   * @param collection 过滤的集合
   * @param predicate 过滤的条件
   */
  @SuppressWarnings("unchecked")
  public static void filter(Collection collection, Predicate predicate)
  {
      if(collection != null && predicate != null)
      {
          for(Iterator iterator = collection.iterator(); iterator.hasNext();)
          {
              Object obj = iterator.next();
              if(!predicate.evaluate(obj))
                  iterator.remove();
          }

      }
  }





  @SuppressWarnings("unchecked")
  public static Object find(Collection collection, Predicate predicate)
  {
      if(collection != null && predicate != null)
      {
          for(Iterator iterator = collection.iterator(); iterator.hasNext();)
          {
              Object obj = iterator.next();
              if(predicate.evaluate(obj))
                  return obj;
          }

      }
      return null;
  }





   /**
    * 从集合中查询符合给定条件的对象集合
    * @param collection    集合对象
    * @param predicate  回调方法
    * @return
    */
   @SuppressWarnings("unchecked")
   public static Collection select(Collection collection, Predicate predicate)
   {
       ArrayList arraylist = new ArrayList(collection.size());
       select(collection, predicate, ((Collection) (arraylist)));
       return arraylist;
   }
  /**
      * 从集合中查询符合给定条件的对象集合
   * @param collection    集合对象
   * @param predicate  回调方法
   * @param collection1 存储符合条件集合的Collection对象
   */
   @SuppressWarnings("unchecked")
   public static void select(Collection collection, Predicate predicate, Collection collection1)
   {
       if(collection != null && predicate != null)
       {
           for(Iterator iterator = collection.iterator(); iterator.hasNext();)
           {
               Object obj = iterator.next();
               if(predicate.evaluate(obj))
                   collection1.add(obj);
           }
       }
   }

 

你可能感兴趣的:(java,spring,Hibernate)