头一次用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的信息呢?
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的信息呢?
这个功能很有用啊。
java这个破语言实在是无语
用C#时感觉一切都那么合理,那么顺利
用java真是一步一个坎!
@Retention(RetentionPolicy.RUNTIME)
public @interface BindingTable { //定义BindingTable
String Name();
String[] Keys();
}
网上那么多讲Annotation的文章居然都没有提到@Retention
烂语言!!!!