我想知道是否有办法避免实现的接口或其他类的不必要的方法
假设我有简单的类实现MouseListener
,实际上我只需要一个方法mousePressed( MouseEvent e)
来覆盖。但是,在这种情况下,我还必须覆盖接口上的所有其他方法,但保持它们为空:
public void mouseExited( MouseEvent e) {}
public void mouseClicked( MouseEvent e) {}
public void mouseReleased( MouseEvent e) {}
public void mouseEntered( MouseEvent e) {}
是否有任何棘手的解决方案只覆盖我真正需要的方法,即使其他人在接口/超类中是抽象的并仍然保持我的类是非抽象的?
答案 0 :(得分:8)
扩展MouseAdapter
。它通过对每个方法都不做任何事来实现MouseListener
。所以你可以覆盖你想要的那个。
答案 1 :(得分:1)
JB Nizet的解决方案很好,但顺便说一下它是一个什么问题?使用像Eclipse这样的现代IDE,您只需单击一下即可添加所有方法(源>覆盖/实现方法)。 如果你使用适配器它是实用的,但你不能扩展另一个类而不是适配器。