JAVA 使用Interface 实现自己的事件监听

来源:互联网 发布:人民网络大学 编辑:程序博客网 时间:2024/06/04 00:27

上班没什么事做,看了一下同事的代码。觉得挺有意思,于是拿出来分享一下,当然这不是什么很难得技术,很多人都能够呀看得懂。所以这一次也是很轻松的学习。

对于接口,我们使用最多的莫过于在设置控件的点击事件中了,例如:

        view.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {            }        });

这里View是控件的实例对象。

那么这里有几个部分,第一个是一个setOnClickListener(OnClickListener listener)方法,里面传入的是一个接口。下面是一个抽象方法onClick(View v)。好了,先分析到这里。

接下来,我将通过使用一个计算的形式来提现这个效果。开始编写我们自己的事件监听。首先写一个接口,代码如下:

public interface FirstInter {    void success(int a);    void fail(Exception error);}

这里还是比较简单,两个抽象方法,分别是success(int a)和fail(Exception error),

然后我们开始写计算的工具类,代码如下:

public class DayUtil {    public void jisuan(int a, int b) {        try {            if (firstInter != null) {                firstInter.success(a / b);                System.out.println("a:" + a + " b:" + b);            }        } catch (Exception e) {            firstInter.fail(e);        }    }    private FirstInter firstInter;    public void isSucces(FirstInter firstInter) {        this.firstInter = firstInter;    }}

首先是定义了一个isSucces()方法,用于给接口赋值,然后通过调用jisuan()这个方法,进行计算,当计算成功的时候,回调success()的方法,然后如果出现异常,则调用fail()方法。

好了,那看到我们怎么使用他的。代码贴下;

    public class Main {    public static void main(String[] args) {        DayUtil dayUtil = new DayUtil();        dayUtil.isSucces(new FirstInter() {            @Override            public void success(int a) {            System.out.println("计算结果为:"+a);            }            @Override            public void fail(Exception error) {                error.printStackTrace();            }        });        dayUtil.jisuan(10, 0);    }}

好了,自此全部结束,谢谢阅读

1 0
原创粉丝点击