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
- JAVA 使用Interface 实现自己的事件监听
- 自己实现事件监听
- 按钮监听事件的实现方式【JAVA】
- java中的事件监听是怎样实现随时监听的
- java中的事件监听是怎样实现随时监听的
- 监听事件的使用
- java的事件监听
- java Swing:实现事件监听的三种方式
- java Swing:实现事件监听的三种方式
- JAVA中实现窗口事件监听的两种方案
- java中的事件监听是怎样实现的
- 用OC实现一个类似java的事件监听机制
- Java事件模型学习(2)--实现自己的事件
- Java监听事件的发生
- java 中 的事件监听
- JAVA的事件监听机制
- Java的事件监听机制
- Java's Interface自己的一点理解
- TreeView的CheckBoxs的第三种状态,怎么点击node前的“+”的时候图标不变
- MES - 设备权限控制、工序限制
- Python使用Redis实现作业调度系统(超简单)
- HDU 3577 线段树区间更新
- 【latex】LATEX微调公式间距
- JAVA 使用Interface 实现自己的事件监听
- eclipse里svn中的基本操作
- Objective-C基础】 isEqual ,isEqualToString , == 三者的区别
- scala隐式转换
- 您已购买此 App 内购买项目。此项目将免费恢复。This In-App purchase has already been bought.It will be restored for free.
- 玩转html5<canvas>画图
- 模板方法模式(Template Method Pattern
- document.getElementById 不能获取值的问题
- 【Objective-C基础】类别Category