java中基本注解的知识点总结
投稿:laozhang
1、java.lang.Override是一个标记类型注解,它被用作标注方法.他说明了该方法是继承了父类的方法,就是重写了父类中同名方法。
@Override public void onCreate(Bundle savedInstanceState) {…….}
这种写法是正确的,如果你写成:
@Override public void oncreate(Bundle savedInstanceState) {…….}
编译器会报如下错误:The method oncreate(Bundle) of type HelloWorld must override or
implement a supertype method,以确保你正确重写onCreate方法(因为oncreate应该为onCreate)
而如果你不加@Override,则编译器将不会检测出错误,而是会认为你为子类定义了一个新方法:oncreate
2、SuppressWarnings
通过它告诉编译器忽视可能出现的警告。实际上里面有很多参数,不同参数设置不同的警告。
- deprecation,使用了过时的类或方法时的警告
- unchecked,执行了未检查的转换时的警告
- fallthrough,当 switch 程序块直接通往下一种情况而没有 break 时的警告
- path,在类路径、源文件路径等中有不存在的路径时的警告
- serial,当在可序列化的类上缺少serialVersionUID 定义时的警告
- finally ,任何 finally 子句不能正常完成时的警告
- all,关于以上所有情况的警告
内容扩展:
自定义注解测试
定义注解@RepeatMethod,包含int类型参数value。
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface RepeatMethod { int value() default 1; }
在doSomeThing方法上应用注解。如果要指定的注解参数为value,并且没有指定其他的参数值时,可以采用简写的方式,省略参数名和等号。
public class Demo { @RepeatMethod(5) public void doSomeThing(){ System.out.println("----注解测试----"); } }
通过反射获取注解信息,然后做对应的处理,如假设@RepeatMethod注解的作用是重复调用被标注的方法,参数value是指定重复调用方法的次数:
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class MyDemo { public static void main(String[] args) throws IllegalAccessException, InstantiationException, InvocationTargetException { Class cla = Demo.class; Method[] methods = cla.getMethods(); Object demo = cla.newInstance(); for (Method method : methods){ //判断方法上是否有标注@RepeatMethod注解 if(method.isAnnotationPresent(RepeatMethod.class)){ //获取RepeatMethod注解的参数值 RepeatMethod repeatMethod = method.getAnnotation(RepeatMethod.class); for (int i = 0;i < repeatMethod.value(); i++) method.invoke(demo, null); } } } }
输出结果:
----注解测试---- ----注解测试---- ----注解测试---- ----注解测试---- ----注解测试----
到此这篇关于java中基本注解的知识点总结的文章就介绍到这了,更多相关java中有哪些基本注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!