Question: What is wrong with the following interface:
public interface House {
@Deprecated
public void open();
public void openFrontDoor();
public void openBackDoor();
}
Answer The documentation should reflect why open is deprecated and what to use instead. For example:
public interface House {
/**
* @deprecated use of open
* is discouraged, use
* openFrontDoor or
* openBackDoor instead.
*/
@Deprecated
public void open();
public void openFrontDoor();
public void openBackDoor();
}
Question: Consider this implementation of the House interface, shown in Question 1.
public class MyHouse implements House {
public void open() {}
public void openFrontDoor() {}
public void openBackDoor() {}
}
If you compile this program, the compiler complains that open has been deprecated (in the interface). What can you do to get rid of that warning?
Answer: You can deprecate the implementation of open:
public class MyHouse implements House {
// The documentation is
// inherited from the interface.
@Deprecated
public void open() {}
public void openFrontDoor() {}
public void openBackDoor() {}
}
Alternatively, you can suppress the warning:
public class MyHouse implements House {
@SuppressWarnings("deprecation")
public void open() {}
public void openFrontDoor() {}
public void openBackDoor() {}
}