java学习之接口回调

接口回调其实平时接触的很多,设置监听器的都是使用的接口回调技术。如何描述一下呢?

我是这么想的:

一个A类,一个B类,在A类中决定B类的具体实现(通过接口),B类可以调用A类中的方法返回一些参数(回调)。

好,捋清了。

写个栗子

package A;

public class Test implements B.MyClickListener {
	/*
	 * 这就是A类了
	 * 
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		B b = new B();
		b.setMyClickListener(new Test());
		b.doSomething();
	}

	//B类中的具体实现
	@Override
	public void onMyClickListener() {
		// TODO Auto-generated method stub
		System.out.println("A类决定的B类的具体实现");
	}

	//回调
	@Override
	public void onMyCallback(String str) {
		// TODO Auto-generated method stub
		System.out.println(str);
	}

}

class B {

	/*
	 * 很明显这是B类
	 */
	private MyClickListener myClickListener;

	void doSomething() {
		//实际中像适配器中 B类还会与C类组成一次接口回调。
		myClickListener.onMyClickListener();
		myClickListener.onMyCallback("B类给A类的回调数据");

	}

	/*
	 * 一般在B类中定义一个接口并设置它的 set 
	 */
	interface MyClickListener {

		void onMyClickListener();

		void onMyCallback(String str);
	}

	public void setMyClickListener(MyClickListener myClickListener) {
		this.myClickListener = myClickListener;
	}

}

猜你喜欢

转载自blog.csdn.net/qq_40687864/article/details/84342170