内联块{}之前的@Annotation

时间:2018-12-19 20:45:12

标签: java annotations

是否有可能设计类似的东西:

@Retention(RetentionPolicy.SOURCE)
@Target({ElementType.TYPE})
public @interface ParallelBlock {
}

所以结果可能是:

public void method(){
    //some code
    @ParallelBlock {
        //some more code
    }
}

还是唯一可能的事情是像预处理?

1 个答案:

答案 0 :(得分:0)

您在代码中使用的ElementType枚举对此做了澄清

ANNOTATION_TYPE  Annotation type declaration
CONSTRUCTOR      Constructor declaration
FIELD            Field declaration (includes enum constants)
LOCAL_VARIABLE   Local variable declaration
METHOD           Method declaration
MODULE           Module declaration.
PACKAGE          Package declaration
PARAMETER        Formal parameter declaration
TYPE             Class, interface (including annotation type), or enum declaration
TYPE_PARAMETER   Type parameter declaration
TYPE_USE         Use of a type

并且没有Target是与此相关的代码块。

为此目的,一种更干净的方法是将方法中的代码块提取出来,然后使用类型METHOD对该方法进行注释。