我看到一段代码是这样的
List<AutoInfo> list = db.query(new Predicate<AutoInfo>() {
public boolean match(AutoInfo ai) {
        return true;
    }
});我知道query方法的参数是一个Predicate对象,但是后面还跟了这段
 {
public boolean match(AutoInfo ai) {
return true;
}
}这是什么意思??   大哥大姐帮帮小弟我吧,我基础比较差,JAVA的书里也没找到类似的用法这是个什么东西啊

解决方案 »

  1.   

    你用的是什么Java书啊?这个是匿名内部类(Anonymous inner class),一般的书上都会提到吧。
    具体的我不多写了,在网络上搜索下或者换本书,^_^
      

  2.   

    匿名类,呵呵。
    List <AutoInfo>   list   =   db.query(new   Predicate <AutoInfo> ()   {
    public   boolean   match(AutoInfo   ai)   {
                    return   true;
            }
    }); 
    可以等效为下列的代码class MyPredicate extends Predicate <AutoInfo>
    {
        public   boolean   match(AutoInfo   ai)   {
                    return   true;
        }
    }List <AutoInfo>   list   =   db.query(new  MyPredicate ()
    }); 
    而,匿名类不需要你创建这么一个MyPredicate 类出来,因为它的真正需要只是一个实现了的接口或基类的方法。