1. 程式人生 > 其它 >Qt定製開發2.檔案傳輸模組PLUS(多執行緒後臺版)

Qt定製開發2.檔案傳輸模組PLUS(多執行緒後臺版)

註解Annotation

作用:

  • 可以被其他程式讀取
  • 對程式作出解釋(與comment註釋 相同)

註解以“@註釋名”在程式碼中存在,還可以新增一些引數值,例如:@SupperessWarnings(value="unchecked")

一般附加在package,class,method,field等上面,相當於給他們新增額外的輔助資訊,可以通過反射機制程式設計實現對這些元素資料的訪問

內建註解

@Override:定義在java.lang.Override中,此註釋只適用於修辭方法,表示一個方法宣告打算重寫超類中的另一個方法宣告

@Deprecated :定義在java.lang.Deprecated中,此註釋可以用於修辭手法,屬性,類,表示不鼓勵使用這樣的元素,通常是因為它很危險或者存在更好的選擇

@SuppressWarning :定義在java.lang.SuppressWarning中 ,用來抑制編譯時的警告資訊,需要新增一個引數才能正確使用

此時標黃的部分具有警告資訊:

新增一個壓制警告註解@SuppressWarning(""),警告資訊消除:

package com.yuanyu.annotation;

import java.util.ArrayList;
import java.util.List;

public class Test01 extends Object {

    //@Override重寫的註解
    @Override
    public String toString() {
        return super.toString();
    }

    //@Deprecated 不推薦程式設計師使用的,但是可以使用,或者存在更好的方式
    @Deprecated
    public static void test(){
        System.out.println("Deprecated");
    }

    // @SuppressWarnings("all") 用於壓制警告資訊
    @SuppressWarnings("all")
    public void test2(){
        List list=new ArrayList();
    }

    public static void main(String[] args) {
        test(); //Deprecated
    }
}

元註解

作用:負責註解其他註解

java定義了四個標準的mata-annotation型別,他們被用來提供對其他annotation型別作說明

**@Target,@Retention, @Document, @Inherited **(這些型別和它們所支援的類在java.lang.annotation包中可以找到)

@Target:用於描述註解的使用範圍

@Retention:表示需要在什麼級別儲存改註釋資訊,用於描述註釋的生命週期

(SOURCE<CLASS<RUNTIME)

@Document:說明該註解將被包含在javadoc中

@Inherited:說明子類可以繼承父類的該註解

點開Target的原始碼:

點開原始碼中的ElemType可以看到@Target註解的值

點開Retention原始碼:

點開RetentionPolicy的原始碼:

package com.yuanyu.annotation;

import java.lang.annotation.*;

//測試元註解
@MyAnnotation
public class Test01{

    @MyAnnotation
    public void test(){

    }
}

//定義一個註解
//@Target表示註解的使用範圍
@Target(value ={ ElementType.METHOD,ElementType.TYPE})
//@Retention表示註解在什麼地方才有效
@Retention(value = RetentionPolicy.RUNTIME)
//@Documented表示是否將註解生成在javadoc中
@Documented
//@Inherited表示子類可以繼承父類的註解
@Inherited
@interface MyAnnotation{

}