自己理解的接口回调


有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()方法里使用;

    }

}

这些都是自己的理解,有什么不对的还请指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值