溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

java中基本注解的知識(shí)點(diǎn)介紹

發(fā)布時(shí)間:2021-06-29 09:05:36 來(lái)源:億速云 閱讀:127 作者:chen 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“java中基本注解的知識(shí)點(diǎn)介紹”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“java中基本注解的知識(shí)點(diǎn)介紹”吧!

1、java.lang.Override是一個(gè)標(biāo)記類(lèi)型注解,它被用作標(biāo)注方法.他說(shuō)明了該方法是繼承了父類(lèi)的方法,就是重寫(xiě)了父類(lèi)中同名方法。

@Override
public void onCreate(Bundle savedInstanceState)

{…….}

這種寫(xiě)法是正確的,如果你寫(xiě)成:

@Override
public void oncreate(Bundle savedInstanceState)
{…….}

編譯器會(huì)報(bào)如下錯(cuò)誤:The method oncreate(Bundle) of type HelloWorld must override or
implement a supertype method,以確保你正確重寫(xiě)onCreate方法(因?yàn)閛ncreate應(yīng)該為onCreate)
而如果你不加@Override,則編譯器將不會(huì)檢測(cè)出錯(cuò)誤,而是會(huì)認(rèn)為你為子類(lèi)定義了一個(gè)新方法:oncreate

2、SuppressWarnings

通過(guò)它告訴編譯器忽視可能出現(xiàn)的警告。實(shí)際上里面有很多參數(shù),不同參數(shù)設(shè)置不同的警告。

- deprecation,使用了過(guò)時(shí)的類(lèi)或方法時(shí)的警告
- unchecked,執(zhí)行了未檢查的轉(zhuǎn)換時(shí)的警告
- fallthrough,當(dāng) switch 程序塊直接通往下一種情況而沒(méi)有 break 時(shí)的警告
- path,在類(lèi)路徑、源文件路徑等中有不存在的路徑時(shí)的警告
- serial,當(dāng)在可序列化的類(lèi)上缺少serialVersionUID 定義時(shí)的警告
- finally ,任何 finally 子句不能正常完成時(shí)的警告
- all,關(guān)于以上所有情況的警告

內(nèi)容擴(kuò)展:

自定義注解測(cè)試

定義注解@RepeatMethod,包含int類(lèi)型參數(shù)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方法上應(yīng)用注解。如果要指定的注解參數(shù)為value,并且沒(méi)有指定其他的參數(shù)值時(shí),可以采用簡(jiǎn)寫(xiě)的方式,省略參數(shù)名和等號(hào)。

public class Demo {
  @RepeatMethod(5)
  public void doSomeThing(){
    System.out.println("----注解測(cè)試----");
  }
}

通過(guò)反射獲取注解信息,然后做對(duì)應(yīng)的處理,如假設(shè)@RepeatMethod注解的作用是重復(fù)調(diào)用被標(biāo)注的方法,參數(shù)value是指定重復(fù)調(diào)用方法的次數(shù):

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){
      //判斷方法上是否有標(biāo)注@RepeatMethod注解
      if(method.isAnnotationPresent(RepeatMethod.class)){
        //獲取RepeatMethod注解的參數(shù)值
        RepeatMethod repeatMethod = method.getAnnotation(RepeatMethod.class);
        for (int i = 0;i < repeatMethod.value(); i++)
        method.invoke(demo, null);
      }
    }
  }
}

輸出結(jié)果:

----注解測(cè)試----
----注解測(cè)試----
----注解測(cè)試----
----注解測(cè)試----
----注解測(cè)試----

到此,相信大家對(duì)“java中基本注解的知識(shí)點(diǎn)介紹”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI