java中基本注解的知识点总结

 更新时间:2021年06月29日 08:42:26   投稿:laozhang  
在本篇文章里小编给大家整理的是一篇关于java中基本注解的知识点总结,有需要的朋友们可以跟着学习下。

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中有哪些基本注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java调用elasticsearch本地代码的操作方法

    Java调用elasticsearch本地代码的操作方法

    这篇文章主要介绍了Java调用elasticsearch本地代码的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion问题解决方法

    java.lang.AbstractMethodError: org.apache.xerces.dom.Documen

    这篇文章主要介绍了java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion问题解决方法,导致本文问题的原因是缺少一个xerces.jar jar包,需要的朋友可以参考下
    2015-03-03
  • Java学习之反射机制及应用场景介绍

    Java学习之反射机制及应用场景介绍

    本篇文章主要介绍了Java反射机制及应用场景,反射机制是很多Java框架的基石。非常具有实用价值,需要的朋友可以参考下。
    2016-11-11
  • SpringCloud微服务续约实现源码分析详解

    SpringCloud微服务续约实现源码分析详解

    这篇文章主要介绍了SpringCloud微服务续约实现源码分析,服务续期和服务注册非常相似,服务注册在Eureka Client程序启动之后开启,并同时开启服务续期的定时任务
    2022-11-11
  • Java中float类型的范围及其与十六进制的转换例子

    Java中float类型的范围及其与十六进制的转换例子

    这篇文章主要介绍了Java中float类型的范围及其与十六进制的转换例子,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • Java异常(Exception)处理以及常见异常总结

    Java异常(Exception)处理以及常见异常总结

    在《Java编程思想》中这样定义异常,阻止当前方法或作用域继续执行的问题,虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常,这篇文章主要给大家介绍了关于Java异常(Exception)处理以及常见异常的相关资料,需要的朋友可以参考下
    2021-10-10
  • Java二叉树中LCA问题解决方法两则

    Java二叉树中LCA问题解决方法两则

    这篇文章主要介绍了Java二叉树中LCA问题解决方法,总的来说这并不是一道难题,那为什么要拿出这道题介绍?拿出这道题真正想要传达的是解题的思路,以及不断优化探寻最优解的过程。希望通过这道题能给你带来一种解题优化的思路
    2022-12-12
  • Java中Lambda表达式并行与组合行为

    Java中Lambda表达式并行与组合行为

    这篇文章主要介绍了Java中Lambda表达式并行与组合行为,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • java模式匹配之蛮力匹配

    java模式匹配之蛮力匹配

    这篇文章主要介绍了java模式匹配之蛮力匹配的相关资料和代码,需要的朋友可以参考下
    2015-05-05
  • Java中String的split切割字符串方法实例及扩展

    Java中String的split切割字符串方法实例及扩展

    最近在项目中遇到一个小问题,一个字符串分割成一个数组,下面这篇文章主要给大家介绍了关于Java中String的split切割字符串方法的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-06-06

最新评论