2
我有一个超过20个方法的接口,但只有少数对我的需求有意义。我已经实施了所需的方法。注解解决接口未实现方法的所有错误?
我不想像空体一样编写代码。是否有任何注释或任何我可以绕过这个避免写空白身体的方式?
谢谢。 Praveen
我有一个超过20个方法的接口,但只有少数对我的需求有意义。我已经实施了所需的方法。注解解决接口未实现方法的所有错误?
我不想像空体一样编写代码。是否有任何注释或任何我可以绕过这个避免写空白身体的方式?
谢谢。 Praveen
一种选择是使每个未实现的方法抛出一个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;
}
}
我不认为有这样的方式,但你可以写上使用只需轻点鼠标Eclipse中的所有坯体的方法。 – 2015-04-05 03:22:51
你确定只有一个接口,如果正在实现的接口只需要其中的一些接口?你可以抛出新的UnsupportedOperationException();'它在文档中注释它,并且比空白体更好。当你返回一个对象或原语时会发生什么? – ChiefTwoPencils 2015-04-05 03:38:06