这段代码里的new ClassA(){function funcA(){}} 是什么用法?
其中funcA是ClassA中定义的方法。
final String name, idf;
s = pager.toSql(new Entity<Record>() {
public EntityField getIdentifiedField() {
return new EntityField(null, null) {
public String getColumnName() {
return idf;
}
};
} public String getTableName() {
return name;
} public String getViewName() {
return name;
} }, "*", null == cnd ? "" : cnd);

解决方案 »

  1.   

    就相当于这样
    先定义一个类
     public class Entity<Record>() {
                    public EntityField getIdentifiedField() {
                        return new EntityField(null, null) {
                            public String getColumnName() {
                                return idf;
                            }
                        };
                    }                public String getTableName() {
                        return name;
                    }                public String getViewName() {
                        return name;
                    }            }参数是Entity的一个对象
     pager.toSql(new Entity<Record>() , "*", null == cnd ? "" : cnd);
      

  2.   

    呵呵,多谢各位,看来代码看的少,自己又犯懒。确实是很简单的匿名子类。
    自己写了一下,也很简单。package innerclass;public interface Singer {
    public void sing();
    }package innerclass;public class FolkSinger implements Singer{ @Override
    public void sing() {
    // TODO Auto-generated method stub
    System.out.println("I'm a folksinger");
    }
    }/**
     * Copyright: 版权所有 ( c ) 北京启明星辰信息技术股份有限公司 2011。保留所有权利。
     * Author: gaoxl
     * Created: 2011-5-13
     */
    package innerclass;public class SingerTest { public static void main(String[] args){
    Singer singer = new Singer() {
    @Override
    public void sing() {
    // TODO Auto-generated method stub
    System.out.println("Hi, I'm MJ");
    }
    };

    singer.sing();

    System.out.println("==========");

    Singer folkSinger_No1 = new FolkSinger();
    folkSinger_No1.sing();

    System.out.println("==========");

    // override some methods.
    Singer folkSinger_No2 = new FolkSinger(){
    @Override
    public void sing() {
    // TODO Auto-generated method stub
    super.sing();
    System.out.println("And... Hi! I'm Bob~~");
    dance();
    }
    public void dance(){
    System.out.println("I'm a dancer, do you believe?");
    }
    };
    folkSinger_No2.sing();

    }
    }<output>
    Hi, I'm MJ
    ==========
    I'm a folksinger
    ==========
    I'm a folksinger
    And... Hi! I'm Bob~~
    I'm a dancer, do you believe?</output>