数不清到底多少网红直播推荐过这套网页传奇排名套

Java中Annotation(注释)系列学习笔记(3)
三.JDK的元Annotation
  JDK除了java.lang下提供了3个基本Annotation之外,还在java.lang.annotation包下提供了四个Meta
Annotation(元Annotation),这四个都是用于修饰其它Annotation定义
(1)使用@Retention
  @Retention只能用于修饰一个Annotation定义,用于该Annotation可以保留多长时间,@Retention包含一个RetentionPolicy类型的value成员变量,所以使用@Retention时必须为该value成员变量指定值.
value成员变量的值只能是如下三个
RetentionPolicy.CLASS:编译器将把注释记录在class文件中。当运行Java程序时,JVM不再保留注释。这是默认值。
RentionPolicy.RUNTIME:编译器将把注释记录在class文件中。当运行java程序时,JVM也会保留注释,程序也可以通过反射获取该注释。
RentionPolicy.SOURCE:编译器直接丢弃这种策略的注释。
  在前面的程序中,因为我们要通过反射获取注释信息,所以我们指定value属性值为RetentionPolicy.RUNTIME.
使用@Retention元数据Annotation可采用如下代码为value指定值.
//定义下面的Testable
Annotation的保留到过行时
@Retention(value=RetentionPolicy.RUNTIME)
public @interface Testable{}
也可以采用如下代码来为value指定值
@Retention(RetentionPolicy.SOURCE)
public @interface Testable{}
  上面代码使用@Retention元数据Annotation时,并未直接通过value=RetentionPolicy.SOURCE的方式来为成员变量指定值,这是因为如果Annotation的成员变量名为value时,程序中可以直接在Annotation后的括号里指定该成员变量的值,无须用name=value的形式.
  如果我们定义的Annotation类型里只有一个value成员变量,使用该Annotation时可以直接在Annotation后的括号里指定value成员变量的值,无须使用name=value的形式。
(2)使用@Target
  @Target也是用于修饰一个Annotation定义,它用于指定被修饰的Annotation能用于修饰哪些程序元素。@Target
Annotation也包含一个名为value的成员变量。该成员变量的值只能是如下几个
ElementType.ANNOTATION_TYPE:
指定该策略的Annotation只能修饰Annotation
ElementType.CONSTRUCTOR:指定该策略的Annotation能修饰构造器
ElementType.FIELD:指定该策略的Annotation只能修饰成员变量
ElementType.LOCAL_VARIABLE:指定该策略的Annotation只能修饰局部变量
ElementType.METHOD
指定该策略的Annotation只能修饰方法定义
ElementType.PACKAGE
指定该策略的Annotaion只能修饰包定义
ElementType.PARAMETER
指定该策略的Annotation可以修饰参数
ElementType.TYPE
指定该策略的Annotaion可以修饰类,接口(包括注释类型)或枚举定义
  与使用@Retention类似的是,使用@Target也可以直接在括号里指定value值,可以无须使用name=value的形式。如
下代码指定@ActionListenerFor
Annotation只能修饰成员变量
@Target(ElementType.FIELD)
public @interface ActionListenerFor{}
如下代码指定@Testable
Annotation只能修饰方法
@Target(ElementType.METHOD)
public @interface Testable{}
(3)使用@Documented
  @Documented用于指定该元Annotation修饰的Annotation类将被javadoc工具提取成文档,如果定义Annotatin类时使用了@Documented修饰,则所有使用该Annotation修饰的程序元素API文档中将会包含该Annotation说明
  下面程序定义了一个Testable
Annotation程序使用@Documented来修饰@Testable Annotation定义,所以该Annotation将被
javadoc工具提取@Retention(RetentionPolicy.RUNTIME)&&&
@Target(ElementType.METHOD)
//定义Testable Annotation将被javadoc工具提取
@Documented
public @interface Testable
  上面程序中的@Documented代码决定了所有使用@Testable
Annotation的地方都会被javadoc工具提取到api文档中
  下面程序中定义了一个 MyTest类,该类中的infor方法使用Testable Annotation修饰
public class MyTest
&//使用@Testable修饰info方法
&@Testable
&public void info()
&&System.out.println("info方法...");
使用javadoc工具为Testable.java
,MyTest文件生成api文档后如下面所示
如果,我们去掉不用@Documented修饰Testable的话,则不会被javadoc提取
(4)使用@Inherited
  @Inherited元Annotation指定被它修饰的Annotation将具有继承性。如果某个类使用了Annotaion(使用Annotation时使用了@Inherited修饰)修饰,则其子类将自动具有A注释。
下面使用@Inherited元数据注释定义了一个Inherited
Annotation,该Annotation将具有继承性
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
// @Inherited
public @interface Inheritable
  上面程序中表明了@Inheritable Annotation具有继承性,如果某个类使用了该Annotation
修饰,则该类的子类将自动具有@Inheritable Annotation
  下面程序定义了一个Base基类,该基类使用了@Inherited修饰,则Base类的子类将自动具有@Inherited
Annotation
//使用@Inheritable修饰的Base类
@Inheritable
class Base
//TestInheritable类只是继承了Base类,
//并未直接使用@Inheritable Annotiation修饰
public class TestInheritable extends Base
&public static void main(String[] args)
&&//打印TestInheritable类是否具有Inheritable
Annotation
&&System.out.println(TestInheritable.class.isAnnotationPresent(Inheritable.class));
运行效果图如下
&& 1.上面程序中的Base类使用了@Inheritable
Annotation修饰,而该Annotaion具有可继承性,所以其子类也将具有@Inheritable
Annotation,运行上面程序看到输出 true
&& 2.如果将上面的Inheritable.java程序中的@Inherited注释或者删除,将会导致Inheritable
Annotation不具有继承性,运行上面程序将会输出 false
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。17019人阅读
智能信息处理(9)
最近用LibSVM做分类实验,发现网上的资料大都是关于SVM基本原理和怎么用终端命令行使用svm-train,svm-predict等几个程序,这些其实在README文件中已经讲得很清楚了,Readme里面几乎包含了所有可以帮助你灵活使用LibSVM的信息,可以很多人都不怎么看。这里给出用JAVA调用LibSVM API最简单的示例,用JAVA进行SVM分类只需要几行程序就搞定了,前提是你已经准备好了符合LibSVM处理数据格式的训练样本和测试样本。下面一一道来(注:有网友向我要eclipse工程,下载地址见)
1、 准备训练样本和测试样本
& & & &直接上LibSVM官网就可以下载,我下载的UCI的UCI-breast-cancer数据集,训练样本和测试样本的基本格式是这样的
& & & &&label& &index1&:&value1& &index2&:&value2& ...
& & & &分别代表 &类别 & feature1索引:feature1值 &feature2索引:feature2值
& & & &如果想自己定义核函数,那么属于precompute kernel values and input them as training and&testing files.
& & & &此时训练样本和测试样本变成如下格式:
& & & &New training instance for xi: &&label& & 0:i & 1:K(xi,x1) ... L:K(xi,xL)&
& & & &New testing instance for any x: &&label& & &0:? & 1:K(x,x1) ... L:K(x,xL)&
& & & &That is, in the training file the first column must be the &ID& of&xi. In testing, ? can be any value.
& & & 很好理解,有篇EMNLP2009做观点和关系抽取就是自己定义核函数借助SVM分类器实现的。
2、建立JAVA工程,导入LibSVM 的JAR包,要注意还需要导入java文件下的svm_train.java和svm_predict.java这两个文件,这两个类其实主要在LibSVM基础上做了进一步封装,把命令行参数转化成了String []类型的函数参数,方便API调用。至于另外两个svm_tony.java和svm_scale可以不导入,它们分别是图形界面和数据压缩用的,不是必要文件。
3、把训练样本和测试样本放在工程文件夹下,当然,你也可以自定义data目录。
4 、修改svm_train.java和svm_predict.java这两个文件,前者主要是把model_file_name返回,因为在svm_predict的main函数中需要使用,后者主要是把分类的Accuracy返回。
5、编写JAVA调用LibSVM API分类代码如下,非常简单,代码中给出了注释
6 运行工程,观察分类准确率,我的代码主要进行了两次实验,第一次是基于训练样本训练分类model(分类超平面),然后对测试样本进行分类;第二次直接对训练样本采用10折交叉验证法测试SVM分类性能,其他参数采用默认值,运行结果如下
是不是很容易,其实仔细看看LibSVM的Readme,很多问题都不是问题。如果需要完整工程文件可以在下面评论栏留下邮箱。
附:svm 主调用程序经常使用的几个方法,注意这是LibSVM中SVM类下的函数,与svm_train.java等文件中的相关函数要区分:
svm.svm_train(svm_problem,svm_parameter) 该方法返回一个训练好的svm_model
svm.svm_load_model(文件名); 该方法返回一个训练好的svm_model
svm.svm_save_model(文件名,svm_model); 该方法将svm_model保存到文件中
svm.svm_predict_values(svm_model,svm_node,double); 该方法返回doule类值,svm_node对svm_model测试,返回值确定了svm_node在模型中的定位
原文:http://blog.csdn.net/yangliuy/article/details/8041343
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:97593次
积分:1086
积分:1086
排名:千里之外
转载:10篇
评论:54条Java代码习题3_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Java代码习题3
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢有没有大神可以用Java写出三行情书【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:624,406贴子:
有没有大神可以用Java写出三行情书收藏
程序员也可以浪漫
二楼那么问题来了
挖掘技术哪家强tell me loudly
自从度娘出了回复带八张图加经验,几乎每张帖子都有类似这种回复:发图也会涨经验这是真的吗不会是度娘骗我玩的吧度娘你要是骗我就太没节操了吧坑爹啊这是还好事前试了下插图片真的好多经验啊 拿到经验的一刹那、简直就像狂欢一样大家都来试试哦 ้้้้้็็็็-新的水比已经出现怎么能够害怕权限 水到极限循环十天经验来到你身边微笑面对权限升级成真不会遥远鼓起勇气坚定向前吧务一定会出现 ้้้้้็็็็็้้้้้้้้้้้้้้้้้้้้้้       --zxy-ILU
if(1>2){
System.out.println(&三行情书&);
synchronized(you){while(alive)liveWith(you);}
class Demo{
public static void main(String[] args)
System.out.print(&\n情书\n情书\n情书\n&);
}}请叫我雷锋
自从度娘出了回复带八张图加经验,几乎每张帖子都有类似这种回复:发图也会涨经验这是真的吗不会是度娘骗我玩的吧度娘你要是骗我就太没节操了吧坑爹啊这是还好事前试了下插图片真的好多经验啊 拿到经验的一刹那、简直就像狂欢一样大家都来试试哦 ้้้้้็็็็-新的水比已经出现怎么能够害怕权限 水到极限循环十天经验来到你身边微笑面对权限升级成真不会遥远鼓起勇气坚定向前吧务一定会出现 ้้้้้็็็็็้้้้้้้้้้้้้้้้้้้้้้       --zxy-ILU
以界面显示还是代码显示还是中间文字变成二进制?
@Beforepublic void meetYou(){I.setOrder(&first&);}@Afterpublic void meetYou(){I.setOrder(&second&);}
自从度娘出了回复带八张图加经验,几乎每张帖子都有类似这种回复:发图也会涨经验这是真的吗不会是度娘骗我玩的吧度娘你要是骗我就太没节操了吧坑爹啊这是还好事前试了下插图片真的好多经验啊 拿到经验的一刹那、简直就像狂欢一样大家都来试试哦 ้้้้้็็็็-新的水比已经出现怎么能够害怕权限 水到极限循环十天经验来到你身边微笑面对权限升级成真不会遥远鼓起勇气坚定向前吧务一定会出现 ้้้้้็็็็็้้้้้้้้้้้้้้้้้้้้้้       --zxy-ILU
while(1==1){
String MyLove = &You&;}
登录百度帐号推荐应用

我要回帖

更多关于 传奇网页版排行 的文章

 

随机推荐