问题和练习:注解
原文: https://docs.oracle.com/javase/tutorial/java/annotations/QandE/questions.html
问题
以下接口有什么问题?
public interface House {
@Deprecated
void 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
。