大型门户网站建设所具有的功能模块主要有,什么网站可以在线做雅思,企业app商城开发网站建设,猎聘网招聘一、什么是注解
(1).注解的作用
①#xff1a;注解一般用于对程序的说明#xff0c;就像注释一样#xff0c;但是区别是注释是给人看的#xff0c;但是注解是给程序看的。 ②#xff1a;让编译器进行编译检查的作用#xff0c;比如下边这个Override注解是重写的意思注解一般用于对程序的说明就像注释一样但是区别是注释是给人看的但是注解是给程序看的。 ②让编译器进行编译检查的作用比如下边这个Override注解是重写的意思子类重写了父类的方法但是改动了方法名所以报错。
(2).注解的格式
注解是以“注释名”在代码当中存在的还可以添加一些参数值例如 SuppressWarnings(value “unchecked”)
(3).注解在哪里使用
可以附加在package、class、method、field等上面相当于给他们添加了额外的辅助信息。我们可以通过反射的方式对这些注解进行访问。
二、注解的类型
一般常用的注解分为三类
(1).内置注解
①Override:修辞方法的表示一个方法重写了父类方法 ②Deprecated:修辞方法、属性、类表示不鼓励程序员使用这样的元素通常是因为它很危险或存在更好的选择。通俗来说就是遗弃。 ③SuppressWarnings:用来抑制编译时的警告信息括号里的的值包括 a.deprecation:使用了过时的类或方法的警告b.unchecked执行了未检查时的转换时的警告集合就是未指定泛型c.fall through:当在switch语句使用时发生case穿透d.path:在类路径、源文件路径等中有不存在路径的警告e.serial:可序列化类上缺少serialVerisonUID定义时的警告f.finally:任何finally橘子不能完成时的警告g.all以上所有情况的警告。一个 SuppressWarnings(all)多个 SuppressWarnings(value{all,path})(2).元注解
元注解是用于注解的注解在JDK 1.5中提供了4个标准的用来对注解类型进行注解的注解类 ①Target注解(用来描述注解的使用范围即注解可以使用在什么地方在定义注解的时候使用这个我们可以更加清晰的知道它的使用范围)
public enum ElementType {TYPE, //类接口FIELD, //成员变量METHOD, //方法PARAMETER, //方法参数CONSTRUCTOR, //构造方法LOCAL_VARIABLE, //局部变量ANNOTATION_TYPE, //注解类PACKAGE, // 包TYPE_PARAMETER, //类型参数TYPE_USE //使用类型的任何地方
}②Retention注解(表示这个注解在什么时候还有效 , 用于描述注解的生命周期)
public enum RetentionPolicy {SOURCE, // 源文件保留CLASS, // 编译期保留默认值RUNTIME // 运行期保留可通过反射去获取注解信息咱们自定义的类一般使用这个
}案例 ③Documented 这个注解只是用来标注生成javadoc的时候是否会被记录(了解就好)。 ④Inherited注解的作用是使被它修饰的注解具有继承性 (学完反射读取注解以后在细说)
(3).自定义注解
①interface是用来声明一个注解的格式public interface 注解名{定义内容}
②其中的每一方法实际上是声明了一个配置参数
③方法的名称就是参数的名称
④返回值类型就是参数的类型返回值类型只能是基本数据类型Class,String,enum)
⑤可以通过default来声明参数的默认值
⑥如果只有一个参数成员一般参数名称为value
⑦注解参数必须有值我们自定义注解元素时经常使用空字符串0作为默认值二、注解实现
(1).自定义注解实现类
Retention(RetentionPolicy.RUNTIME) //元注解定义自定义注解的生命周期 ---》在运行期间保留
Target(value {ElementType.TYPE}) //元注解定义自定义注解的作用返回 ---》只能作用在类上边
public interface WebServlet {String urlMapping() default ;
}(2).在一个类上使用注解
WebServlet(urlMapping /third)
public class ThridServlet {}(3).利用反射获取注解信息
//利用反射获取注信息
public static void getMessage() throws Exception {Class clazz Class.forName(com.qcby.MyServletDemo.FirstServlet);//获取注解信息WebServlet webServlet (WebServlet) clazz.getDeclaredAnnotation(WebServlet.class);System.out.println(webServlet.urlMapping());
}public static void main(String[] args) throws Exception {getMessage();
}