1. 程式人生 > >JAVA 使用Interface 實現自己的事件監聽

JAVA 使用Interface 實現自己的事件監聽

上班沒什麼事做,看了一下同事的程式碼。覺得挺有意思,於是拿出來分享一下,當然這不是什麼很難得技術,很多人都能夠呀看得懂。所以這一次也是很輕鬆的學習。

對於介面,我們使用最多的莫過於在設定控制元件的點選事件中了,例如:

        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);


    }
}

好了,自此全部結束,謝謝閱讀