1
所以,問題不是很容易理解,但我會盡我所能,讓說,我有一個接口:接口的默認實現?或保留爲空
interface OnWindowMoveListener{
void onWindowMove(MotionEvent motionEvent);
}
現在在我的班級我有
OnWindowMoveListener onWindowMoveListener;
public void setOnWindowMoveListener(OnWindowMoveListener onWindowMoveListener){
this.onWindowMoveListener = onWindowMoveListener;
}
後來在我的代碼onWindowMoveListener.onWindowMove()
被調用,但我不想要檢查如果onWindowMoveListener已由用戶設置,因此不爲空,我將如何創建此偵聽器的默認實現?如果用戶不自己實現它們,還是有另一種方法來執行此操作,我是否必須在我的類的主要方法中手動實現接口?我一直在檢查接口在調用之前是否已經實現,但想知道是否有更乾淨的方法來執行此操作。謝謝
這是正常的,常見的簡單檢查,如果用戶設置的偵聽器對象非空。 – VGR
包含的類可以實現您的偵聽器。'公共類MyClass實現OnWindowMoveListener' ..然後爲其分配'this.onWindowMoveListener = this'。現在該值不會以'null'開頭,但這並不意味着用戶不會嘗試設置'null'偵聽器 - 您仍然需要檢查'null'。 – trooper
@VGR代碼並沒有開始看起來整潔,如果我必須檢查每個偵聽器,看看它之前調用它非空,這就是爲什麼我正在尋找替代解決方案:/ –