2015-05-23 42 views
0

有什么方法可以验证Java中的注释有效性吗?Java中的注释(参数)验证?

例如,我可以有一个注释

public @interface Foo { 
    int number(); 
    String name(); 
} 

public @interface Foos { 
    Foo[] value(); 
    /* Foos() { 
     for(int i=0; i<value().length; ++i) { 
      if(i != value()[i].number()) { 
       throw new IllegalArgumentException(); 
      } 
     } 
    } */ 
} 

我能约束numbers是从零开始,不断去?

(例如上面我写的注释注释构造此项检查)

UPDATE

注释使用的一些样本:

// correctly annotated class 
@Foos({@Foo(number=0, name="first"), @Foo(number=1,name="second")}) 
class MyCorrectAnnotatedClass { 
} 

// incorrectly annotated class 1 
// number starts from 1 not form 0 
@Foos({@Foo(number=1, name="first"), @Foo(number=2,name="second")}) 
class MyIncorrectAnnotatedClass1 { 
} 

// incorrectly annotated class 2 
// number sequence has missed 1 
@Foos({@Foo(number=0, name="first"), @Foo(number=2,name="second")}) 
class MyIncorrectAnnotatedClass2 { 
} 

回答

0

你的意思是要检查所有使用注释的地方,以便每个数字从0开始使用一次?这是不可能的,以一种简单的方式。

如果你真的想这样做,你必须编写代码来扫描类路径中的所有类,找到所有使用注释的类,然后检查注释的值。 (如果注解用于方法或其他类而不是类,则更加困难)。

您不能将实现代码(如构造函数)添加到注释中。这样一来,注释与界面相似。

+0

虽然我的意思是你认为不同的事情,但从你的回答来看,可能是因为答案是“不可能的”。请参阅我的更新:我的意思是检查每个单一用法的注释完整性,而不是所有用法。由于注释设计为独立实体,后者的愿望将是非法的。 –