java接口实现两个类数据传送

前言

有人说,随着对java学习的深入,对java接口的理解也会越来越深刻。最近在开发安卓的过程中发现了一个用接口传递两个类之间的数据的功能,在此记录一下。

实现

例如由两个类,分别是class A 和class B 现在要将class A中的数据传递通过一个接口到Class B中去。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
*
*class A
*/
class A{
//定义监听变量
private OnclickListener listener;
public void click(String s){
s = "我点击了一下";
this.listener.onClick(this,s);
}
//设置外部函数接口
public void setOnclickListener(OnclickListener listener){
this.listener = listener;
}
//定义接口
public interface OnclickListener{
void onClick(A a,String s);
}
}
`

class A 每执行一次click方法,就会把自己的对象和String值传入到接口中,只要class B同样引用这个接口,就可以收到class A中的数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
*class B
*/
class B{
private A a;
//做一些事情
void dealWith(){
a = new A();
//打印地址
System.out.println(a.tostring());
//设置A的click方法监听
a.setOnclickListener(new OnclickListener{
@Override
void onClick(A a,String s){
//这里的地址和上方的地址是一样的
System.out.println(a.tostring());
//输出为:我点击了一下
System.out.println(s);
}
});
}
}

在class B中调用a的setOnclickListener方法就可以监听A中click方法中的数据,每当A中的click方法执行的时候,接口OnclickListener就把A中的参数传入B中。

在android中,这种技巧用的很多,这种方法有助于代码的模块化编写。