所以这个问题并不是很容易理解,但是我会尽力而为,让我说我有一个接口:
interface OnWindowMoveListener{
void onWindowMove(MotionEvent motionEvent);
}
现在在我班上
OnWindowMoveListener onWindowMoveListener;
public void setOnWindowMoveListener(OnWindowMoveListener onWindowMoveListener){
this.onWindowMoveListener = onWindowMoveListener;
}
稍后在我的代码中调用
onWindowMoveListener.onWindowMove()
,但是我不想检查用户是否设置了onWindowMoveListener,因此不设置为null,如何为该侦听器创建默认实现?如果用户自己没有实现接口,或者有其他方法可以实现,则是否必须在类的main方法中手动实现接口?我一直在检查调用之前接口是否已实现,但想知道是否有更干净的方法。谢谢 最佳答案
进行nullcheck并不是一项成本操作,但是如果您确实需要避免执行nullcheck,最好的选择是使用Null Object Design Pattern。
创建一个不执行任何操作的接口实现,然后将其用作onWindownMoveListener的默认值。
有关此设计模式的更多信息,请访问:https://sourcemaking.com/design_patterns/null_object/java-0
关于java - 接口(interface)的默认实现?或保留为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41168639/