1. 程式人生 > >java 中閉包運用 實現方法傳遞

java 中閉包運用 實現方法傳遞

寫了一個測試java閉包的例項,在事件監聽中用得比較多的設計模式!

定義一個介面,通過介面來傳遞方法體

/**
 * @author yaohw
 *
 */
public interface Action{
	
	public void excute(Object arg);

}

訊息接收類

/**
 * @author yaohw
 *
 */
public class To{
	private int j = 0;
	/* (non-Javadoc)
	 * @see Action#excute(int)
	 */
	public void update(Object i) {
		j = (Integer) i;
		System.out.println(j);
	}
}
訊息發出者
public class From{
	
	private int i = 12112;
	public void doWork(final Action action){
		//do sth
			action.excute(i);
	}
}
測試主方法
public static void main(String[] args) {
		final To to = new To();
		
		From from = new From();
		from.doWork(new Action() {
			
			@Override
			public void excute(Object arg) {
				System.out.println("傳方法");
				to.update(arg);
			}
		});
	}