java 接口方法的回调

        今天在学习RecyclerView使用时 发现RecyclerView没有click方法。事列里是通过接口的回调来实现的 当时看的有点绕 事后写一个小例子来清晰下思路。我的理解就是 传递一个实例化接口的引用对象,通过该引用对象来达到回调方法。

       以上是个人理解  不知道是不是完全对。下面例子就是模拟了今天在学习RecycleView时碰到的方法回调 

        

public class Test {

	//定义一个内部接口
	public interface Play{
		void Swing(String mes);
		void Sing(String mes);
	}
	//设置内部接口变量 用于接收实例化的接口对象
	private static Play p;
	//接口对象的SET方法
	public void setPlay(Play p){
		this.p=p;
	}
	
	public static void main(String[] args) {
		Student student=new Student();
		if(p!=null){
			//判断非空 然后进行方法调用 达到方法回调的效果
			p.Sing("zhangsan");
			p.Swing("lisi");
		}
	}
}


public class Student  {

	public Student(){
		Test test=new Test();
		//通过set方法将实例化的接口对象赋值到接口类中
		test.setPlay(new t());
	}
	
	//内部类 实现接口
	class t implements Test.Play{
		@Override
		public void Swing(String mes) {
			System.out.println("Swing "+mes);
		}

		@Override
		public void Sing(String mes) {
			System.out.println("Sing "+mes);
		}
		
	}
}



你可能感兴趣的:(java 接口方法的回调)