问题和练习:注解
原文: https://docs.oracle.com/javase/tutorial/java/annotations/QandE/questions.html
问题
以下接口有什么问题?
public interface House {@Deprecatedvoid open();void openFrontDoor();void openBackDoor();}
考虑
House接口的这种实现,如问题 1 所示。public class MyHouse implements House {public void open() {}public void openFrontDoor() {}public void openBackDoor() {}}
如果编译此程序,编译器会生成警告,因为
open已弃用(在接口中)。你能做些什么来摆脱那个警告?以下代码是否会编译而不会出错?为什么或者为什么不?
public @interface Meal { ... }@Meal("breakfast", mainDish="cereal")@Meal("lunch", mainDish="pizza")@Meal("dinner", mainDish="salad")public void evaluateDiet() { ... }
演习
- 使用元素
id,synopsis,engineer和date为增强请求定义注解类型。为工程师指定默认值为unassigned,为日期指定unknown。
