1.回调
下面这个代码是模仿spring的HibernateTemplae.excute(HibernateCallback callback)的
package callback;

public interface Callee {
    
public Object doExecute();

}


package callback;

public class Caller {
    
public static void main(String args[]) {
        CallerClass.execute(
new Callee() {
            
public Object doExecute() {
                String s 
= "this is callback runing";
                System.out.println(s);
                
return s;

            }


        }
);      
        CallerClass.execute(
new Callee() {
            
public Object doExecute() {
               System.out.println(
"i am can");
               
return new Integer(2234234);
            }


        }
);

    }

    
public static class CallerClass {
        
public static void execute(Callee callee) {
            System.out.println(
"call back start");
            callee.doExecute();
            System.out.println(
"call back done");
        }

    }

}


运行结果:
call back start
this is callback runing
call back done
call back start
i am can
call back done


2: 有时候,每个类的实例只在某个地方用到,其它地方不会去调用,我们可以把这个实例放到某个函数内部调用
 public static File[] listSubDirectories(String _dir) {
        File fDir 
= new File(_dir);
        FileFilter fileFilter 
= new FileFilter() {
            
public boolean accept(File file) {
                
return file.isDirectory();
            }

        }
;

        File[] files 
= fDir.listFiles(fileFilter);
        
return files;
    }