|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Вопрос: Что не так со следующим интерфейсом:
public interface House {
@Deprecated
public void open();
public void openFrontDoor();
public void openBackDoor();
}
Ответьте, что документация должна отразиться почему open осуждается и что использовать вместо этого. Например:
public interface House {
/**
* @deprecated use of open
* is discouraged, use
* openFrontDoor or
* openBackDoor instead.
*/
@Deprecated
public void open();
public void openFrontDoor();
public void openBackDoor();
}
Вопрос: Рассмотрите эту реализацию House интерфейс, показанный рассматриваемый 1.
public class MyHouse implements House {
public void open() {}
public void openFrontDoor() {}
public void openBackDoor() {}
}
Если Вы компилируете эту программу, компилятор жалуется это open был осужден (в интерфейсе). Что можно сделать, чтобы избавиться от того предупреждения?
Ответ: можно осудить реализацию open:
public class MyHouse implements House {
// The documentation is
// inherited from the interface.
@Deprecated
public void open() {}
public void openFrontDoor() {}
public void openBackDoor() {}
}
Альтернативно, можно подавить предупреждение:
public class MyHouse implements House {
@SuppressWarnings("deprecation")
public void open() {}
public void openFrontDoor() {}
public void openBackDoor() {}
}