头一次用Annotation,很不顺利。下面是我的代码,高手帮看看:public @interface BindingTable {     //定义BindingTable 
String Name();
String[] Keys();
}
@BindingTable(Name="roi_stations",Keys={"StationID"})    //类Station 声明了BindingTable
public class Station {
@TableField(Name="StationID",Type="char")
public String ID;
@TableField(Name="StationName",Type="varchar")
public String Name;
@TableField(Name="TemplateName",Type="varchar")
public String TemplateName;
@TableField(Name="Parameter",Type="varchar")
public String ParameterInfo;
public ArrayList<SubscribeTask> SubscribeTasks;
public ArrayList<PublishTask> PublishTasks;}
public static void main(String[] args) throws SecurityException, NoSuchFieldException
{
Class cls=Station.class;
boolean flag=cls.isAnnotationPresent(@BindingTable.class); //flag返回flase,why?
}类Station明明声明了BindingTable,为什么运行时没有Annotation的信息呢?

解决方案 »

  1.   

    这么久居然无人来顶,都没用过Annotation?
    这个功能很有用啊。
    java这个破语言实在是无语
    用C#时感觉一切都那么合理,那么顺利
    用java真是一步一个坎!
      

  2.   

    在以前的帖子中找到了答案
    @Retention(RetentionPolicy.RUNTIME)
    public @interface BindingTable {     //定义BindingTable 
    String Name();
    String[] Keys();
    }
    网上那么多讲Annotation的文章居然都没有提到@Retention 
    烂语言!!!!