2015-04-05 131 views
2

我有一个超过20个方法的接口,但只有少数对我的需求有意义。我已经实施了所需的方法。注解解决接口未实现方法的所有错误?

我不想像空体一样编写代码。是否有任何注释或任何我可以绕过这个避免写空白身体的方式?

谢谢。 Praveen

+0

我不认为有这样的方式,但你可以写上使用只需轻点鼠标Eclipse中的所有坯体的方法。 – 2015-04-05 03:22:51

+0

你确定只有一个接口,如果正在实现的接口只需要其中的一些接口?你可以抛出新的UnsupportedOperationException();'它在文档中注释它,并且比空白体更好。当你返回一个对象或原语时会发生什么? – ChiefTwoPencils 2015-04-05 03:38:06

回答

2

一种选择是使每个未实现的方法抛出一个UnsupportedOperationException。这是Collections.unmodifiableList()所做的,以便它可以返回List,但不能在其上使用add()

例如:

@Override 
public void notNeeded() { 
    throw new UnsupportedOperationException(); 
} 

另一种选择是考虑,如果真的很有意义实现这样的接口。相反,您可以创建更小,更专业化的界面,以更好地满足您的使用情况。如果您可以修改当前界面,请将其扩展为新界面,以免重复使用代码。

例如,假设你有BigInterface其中宣布,你不希望在你的类MyClass实现一些方法:

interface BigInterface { 
    void notNeeded(); 
    int alsoNotNeeded(); 

    boolean neededMethod(); 
} 

您可以只提取您需要的方法,并创建一个新的接口:

interface SmallInterface { 
    boolean neededMethod(); 
} 

然后让BigInterface延长SmallInterface,所以那些实现BigInterface类继续工作像往常一样:

interface BigInterface extends SmallInterface { 
    void notNeeded(); 
    int alsoNotNeeded(); 
} 

而且使MyClass只实现SmallInterface

class MyClass implements SmallInterface { 
    @Override 
    public boolean neededMethod() { 
     return true; 
    } 
} 
相关问题