今天我看到了注解这个奇妙的世界,于是尝试写了自己的代码,但它无法编译:
public @interface SomeAnnotation {
public String sayHello1() default "Hello world";
default public String sayHello2() {
return "Hello world";
}
}
在sayHello1
中看到的是如何指定注释默认参数的方式。
但我想知道的是,为什么sayHello2
不被允许,虽然它自Java 8以来就可用。
对我来说,它似乎提供了相同的功能,或者我漏掉了什么?
此外,为什么自Java 5以来注释可以访问默认方法体(虽然非常简单),而接口要等到Java 8才能访问?