【发布时间】:2014-06-15 12:09:44
【问题描述】:
是否可以注释代码块?例如。循环或简单的大括号?如果有,怎么做?
First.java
package An;
import An.ForCycle;
class First {
public static void main(String[] args) {
First f = new First();
}
public First () {
@ForCycle
{ // error: illegal start of type {
int k;
}
@ForCycle
for (int i = 0; i < 5; i++) { // similar error (illegal start...)
System.out.println(i);
}
}
}
ForCycle.java
package An;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.SOURCE)
public @interface ForCycle {}
根据http://www.javacodegeeks.com/2012/11/java-annotations-tutorial-with-custom-annotation.html
@Target – 指示注释类型适用的程序元素的种类。一些可能的值是 TYPE、METHOD、CONSTRUCTOR、FIELD 等。如果 Target 元注释不存在,则注释可用于任何程序元素。
任何程序元素(我猜)也意味着阻塞,不是吗?那么为什么我不能注释 block 或 for?我错过了什么?
感谢您的帮助
【问题讨论】:
-
只是想知道,为什么要注释块?我们不能使用评论来实现吗?
-
@fajarkoe 我使用 ANTLR 作为 AST 树解析器编写了一个替代的自动并行化预处理器。 Java8 语法可以识别注解但当然不能识别 cmets。我打算像
@parallel for (..) {...} -
任何人都知道 JSR308 的状态,似乎想要做提问者想要的? code.google.com/p/jsr308-langtools/wiki/AnnotationsOnStatements
-
你有什么选择吗?除了使用注解
标签: java annotations block