上班没什么事做,看了一下同事的代码。觉得挺有意思,于是拿出来分享一下,当然这不是什么很难得技术,很多人都能够呀看得懂。所以这一次也是很轻松的学习。
对于接口,我们使用最多的莫过于在设置控件的点击事件中了,例如:
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);
}
}
好了,自此全部结束,谢谢阅读