gav*_*koa 7 java annotations java-8
这是通常的代码:
@Autowire
private Service service;
Run Code Online (Sandbox Code Playgroud)
但是使用Java 7,这也可以(并且更短):
private @Autowire Service service;
Run Code Online (Sandbox Code Playgroud)
这在Java 8中是否合法(具有相同的语义)?这是不好的编码练习吗?
use*_*339 10
根据文件
在Java 7中:
注释可以应用于声明:类,字段,方法和其他程序元素的声明.当在声明中使用时,每个注释通常按照惯例出现在它自己的行上.
从Java SE 8发行版开始,注释也可以应用于类型的使用.:
类实例创建表达式:
new @Interned MyObject();
Run Code Online (Sandbox Code Playgroud)
输入:
myString = (@NonNull String) str;
Run Code Online (Sandbox Code Playgroud)
实现条款:
class UnmodifiableList<T> implements
@Readonly List<@Readonly T> { ... }
Run Code Online (Sandbox Code Playgroud)
抛出的异常声明:
void monitorTemperature() throws
@Critical TemperatureException { ... }
Run Code Online (Sandbox Code Playgroud)
根据官方Java 7语法,这是合法的:
Modifier:
Annotation
public
protected
private
static
abstract
final
native
synchronized
transient
volatile
strictfp
ClassOrInterfaceDeclaration:
{Modifier} (ClassDeclaration | InterfaceDeclaration)
...
Run Code Online (Sandbox Code Playgroud)
Java 8的语法似乎也允许自由混合修饰符:
MethodDeclaration:
{MethodModifier} MethodHeader MethodBody
MethodModifier:
Annotation public protected private
abstract static final synchronized native strictfp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |