有2个类和一个接口,假设类名为A和B,接口名为C;
接口C如下:
public interface C
{
void onC(String s);
}
类A将接口C对象当做它的成员变量,然后构建set方法给接口对象初始化赋值,在A类中使用接口C的方法;
类A代码如下:
public class A
{
public C c;
public void setC(C c)
{
this.c =c;
}
// atA()方法在类A中一定要执行到
private void atA(String s)
{
if(c !=null)
{
c.onC(s); // A类使用接口C的方法,将值传给接口C的实现类;
}
}
}
然后是类B实现接口C,实现C的方法,在接口C的方法里获取到A中传递过来的字符串;
类B的代码:
public class B implements C
{
// 类B中调用自己的onB 方法给类A的接口成员赋值,
public void onB(){
A a = new A();
a.setC(this); // 给类A中的接口C对象赋值,因为B实现了接口C,所以参数可以传this;
}
@Override
public void onC(String s)
{
System.out.print(s); // 获取到类A中传递过来的数据;
// do something 做一些事情,在这个方法里做的事情相当于在类A中的atA()方法里使用;
}
}
这些都是自己的理解,有什么不对的还请指教。