问题和练习:注解

原文: https://docs.oracle.com/javase/tutorial/java/annotations/QandE/questions.html

问题

  1. 以下接口有什么问题?

    1. public interface House {
    2. @Deprecated
    3. void open();
    4. void openFrontDoor();
    5. void openBackDoor();
    6. }
  2. 考虑House接口的这种实现,如问题 1 所示。

    1. public class MyHouse implements House {
    2. public void open() {}
    3. public void openFrontDoor() {}
    4. public void openBackDoor() {}
    5. }

    如果编译此程序,编译器会生成警告,因为open已弃用(在接口中)。你能做些什么来摆脱那个警告?

  3. 以下代码是否会编译而不会出错?为什么或者为什么不?

    1. public @interface Meal { ... }
    2. @Meal("breakfast", mainDish="cereal")
    3. @Meal("lunch", mainDish="pizza")
    4. @Meal("dinner", mainDish="salad")
    5. public void evaluateDiet() { ... }

演习

  1. 使用元素idsynopsisengineerdate为增强请求定义注解类型。为工程师指定默认值为unassigned,为日期指定unknown

检查你的答案。