今天在看模板方法設計模式的時候 發現在接口回調的時候,匿名類里面new了一個接口 。覺得很奇怪就寫了個小程序測試了一下
//HibernateCallback是一個接口public void saveUser(final User user) { execute(new HibernateCallback() { public Object doInsession(Session session) { session.save(user); return null; } }); }下面是測試代碼
public interface Interface{ void PRint();}public class Test { static void updateUser() { execute(new Interface() { @Override public void print() { System.out.println("我是一個接口"); } }); } static void execute(Interface i){ i.print(); } public static void main(String[] args){ updateUser(); }} 輸出結果是: 我是一個接口
匿名類的反編譯文件

從反編譯文件上看并不是new了一個接口, 而是這匿名類實現了接口,然后把自己當成參數傳遞了過去。
新聞熱點
疑難解答