實用簡約的java注釋標籤(實用簡約的java注釋標籤有哪些)

本文目錄一覽:

java 中的幾種注釋方式

我看動力節點的java基礎大全301集教中的三種注釋方法:

1、單行注釋   //注釋的內容

2、多行注釋  /*……*/

3、/**……*/,這種方式和第二種方式相似。這種格式是為了便於javadoc程序自動生成文檔。

下面介紹一下Javadoc的標記:

特別聲明:

(1)javadoc針對public類生成注釋文檔

(2)javadoc只能在public、protected修飾的方法或者屬性之上

(3)javadoc注釋的格式化:前導*號和HTML標籤

(4)javadoc注釋要僅靠在類、屬性、方法之前

下面主要舉例說明第三種注釋的應用:

(1)首先編寫.java文件

(2)在命令行中執行以下dos命令:

javadoc *.java //根據相應的Java源代碼及其說明語句生成HTML文檔

//javadoc標記:是@開頭的,對javadoc而言,特殊的標記。

(3)在當前目錄下就會產生doc文件夾,裡面有一系列的.html文件

附上代碼:

[java] view plain copy

span style=”font-size:18px;”*/

/**javadoc注釋的內容

*/

public class Hello{

/**屬性上的注釋*/

public String name;

/**這是main方法,是程序的入口

*@param args 用戶輸入參數

*/

public static void main(String[] args){

System.out.println(“Hello World!”);

f1();

}

/** 這是第1個方法,其作用是…*/

public static void f1(){

System.out.println(“f1()!”);

}

}/span

[java] view plain copy

span style=”font-size:18px;”import java.io.IOException;

/**javadoc注釋內容

*@since 1.0

*@version 1.1

*@author Blue Jey

*br鏈接到另一個文檔{@link Hello},就這些

*see Hello

*/

public class HelloWorld{

/**非public,protected 屬性上的注釋不生成*/

public String name;

/**這是main方法,是程序的入口

*@param args 用戶輸入的參數,是數組

*@throws IOException main方法io異常

*/

public static void main(String args[]) throws IOException{

System.out.println(“hello World!”);

f1();

f2(1);

}

/**這是第一個方法,其作用是….

*@deprecated 從版本1.2開始,不再建議使用此方法

*/

public static void f1(){

System.out.println(“fl()!”);

}

/**這是第二個方法,其作用是….

*@return 返回是否OK

*@param i 輸入參數i

*@see Hello

*@throws IOException io異常

*/

public static String f2(int i)throws IOException{

System.out.println(“f1()!”);

return “OK”;

}

} /span

注意:

如果源文件中有用到@version,@author標記,則在執行javadoc命令時,要加-version -author

javadoc -version -author -d doc *.java

(其中用-version用於提取源文件中的版本信息 -author用於提取源文件中的作者信息)

Java中文檔注釋各欄位的含義是什麼?例如author表示作者,para表示參數等

常用Java注釋標籤(Java comment

tags)

@author 作者

適用範圍:文件、類、方法

(*多個作者使用多個@author標籤標識,java

doc中顯示按輸入時間順序羅列。)

例:*

@author Leo. Yao

@param 輸入參數的名稱 說明

適用範圍:方法

例:* @param str

the String用來存放輸出信息。

@return 輸出參數說明

適用範圍:方法

例: *

@return codetrue/code執行成功;

* codefalse/code執行失敗.

@since

JDK版本

用於標識編譯該文件所需要的JDK環境。

適用範圍:文件、類

例: * @since

JDK1.6

@version 版本號

用於標識注釋對象的版本號

適用範圍:文件、類、方法

例: * @version 1.0

@see 鏈接目標

表示參考。會在java 文檔中生成一個超鏈接,鏈接到參考的類容。使用中的感覺是@see不需要包路徑,對我這種懶人比較喜歡,相對{@link

}這種既要加大括弧,有需要包路徑,我還是選擇偷懶,當然你要是不介意使用import導入要link的類,那就可以達到@see的效果,所以總體來說,還是選擇@see,當然兩個在特殊場合下還是用法不一樣的

用法:

@see

#field

@see #Constructor(Type,

Type…)

@see #Constructor(Type id, Type

id…)

@see #method(Type,

Type,…)

@see #method(Type id, Type,

id…)

@see

Class

@see

Class#field

@see Class#Constructor(Type,

Type…)

@see Class#Constructor(Type id,

Type id)

@see Class#method(Type,

Type,…)

@see Class#method(Type id, Type

id,…)

@see

package.Class

@see

package.Class#field

@see

package.Class#Constructor(Type, Type…)

@see

package.Class#Constructor(Type id, Type id)

@see package.Class#method(Type,

Type,…)

@see package.Class#method(Type

id, Type, id)

@see

package

@throws 異常

標識出方法可能拋出的異常

適用範圍:方法

例: * @throws IOException If an input or output

exception occurred

@deprecated 解釋

標識對象過期

適用範圍:文件、類、方法

@link 鏈接地址

鏈接到一個目標,用法類似@see。但常放在注釋的解釋中形如{@link …}

例:

/**

* @deprecated As of JDK 1.1,

replaced by

* {@link

#setBounds(int,int,int,int)}

*/

java開發中常用的註解有哪些

Java 註解全面解析,學習java做一個java工程師不但待遇高,而且前途無可限量。為什麼這樣說呢?因為java程序語言作為最流行的計算機開發語言之一,幾乎所有的系統、軟體、app、網頁等都是需要用到java的。

1.基本語法

註解定義看起來很像介面的定義。事實上,與其他任何介面一樣,註解也將會編譯成class文件。

@Target(ElementType.Method)

@Retention(RetentionPolicy.RUNTIME)

public @interface Test {}

除了@符號以外,@Test的定義很像一個空的介面。定義註解時,需要一些元註解(meta-annotation),如@Target和@Retention

@Target用來定義註解將應用於什麼地方(如一個方法或者一個域)

@Retention用來定義註解在哪一個級別可用,在源代碼中(source),類文件中(class)或者運行時(runtime)

在註解中,一般都會包含一些元素以表示某些值。當分析處理註解時,程序可以利用這些值。沒有元素的註解稱為標記註解(marker annotation)

四種元註解,元註解專職負責註解其他的註解,所以這四種註解的Target值都是ElementType.ANNOTATION_TYPE

註解 說明

@Target 表示該註解可以用在什麼地方,由ElementType枚舉定義

CONSTRUCTOR:構造器的聲明

FIELD:域聲明(包括enum實例)

LOCAL_VARIABLE:局部變數聲明

METHOD:方法聲明

PACKAGE:包聲明

PARAMETER:參數聲明

TYPE:類、介面(包括註解類型)或enum聲明

ANNOTATION_TYPE:註解聲明(應用於另一個註解上)

TYPE_PARAMETER:類型參數聲明(1.8新加入)

TYPE_USE:類型使用聲明(1.8新加入)

PS:當註解未指定Target值時,此註解可以使用任何元素之上,就是上面的類型

@Retention 表示需要在什麼級別保存該註解信息,由RetentionPolicy枚舉定義

SOURCE:註解將被編譯器丟棄(該類型的註解信息只會保留在源碼里,源碼經過編譯後,註解信息會被丟棄,不會保留在編譯好的class文件里)

CLASS:註解在class文件中可用,但會被VM丟棄(該類型的註解信息會保留在源碼里和class文件里,在執行的時候,不會載入到虛擬機(JVM)中)

RUNTIME:VM將在運行期也保留註解信息,因此可以通過反射機制讀取註解的信息(源碼、class文件和執行的時候都有註解的信息)

PS:當註解未定義Retention值時,默認值是CLASS

@Documented 表示註解會被包含在javaapi文檔中

@Inherited 允許子類繼承父類的註解

2. 註解元素

– 註解元素可用的類型如下:

– 所有基本類型(int,float,boolean,byte,double,char,long,short)

– String

– Class

– enum

– Annotation

– 以上類型的數組

如果使用了其他類型,那編譯器就會報錯。也不允許使用任何包裝類型。註解也可以作為元素的類型,也就是註解可以嵌套。

元素的修飾符,只能用public或default。

– 默認值限制

編譯器對元素的默認值有些過分挑剔。首先,元素不能有不確定的值。也就是說,元素必須要麼具有默認值,要麼在使用註解時提供元素的值。

其次,對於非基本類型的元素,無論是在源代碼中聲明,還是在註解介面中定義默認值,都不能以null作為值。這就是限制,這就造成處理器很難表現一個元素的存在或缺失狀態,因為每個註解的聲明中,所有的元素都存在,並且都具有相應的值。為了繞開這個限制,只能定義一些特殊的值,例如空字元串或負數,表示某個元素不存在。

@Target(ElementType.Method)

@Retention(RetentionPolicy.RUNTIME)

public @interface MockNull {

public int id() default -1;

public String description() default 「」;

}

3. 快捷方式

何為快捷方式呢?先來看下springMVC中的Controller註解

@Target({ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Component

public @interface Controller {

String value() default 「」;

}

可以看見Target應用於類、介面、註解和枚舉上,Retention策略為RUNTIME運行時期,有一個String類型的value元素。平常使用的時候基本都是這樣的:

@Controller(「/your/path」)

public class MockController { }

這就是快捷方式,省略了名-值對的這種語法。下面給出詳細解釋:

註解中定義了名為value的元素,並且在應用該註解的時候,如果該元素是唯一需要賦值的一個元素,那麼此時無需使用名-值對的這種語法,而只需在括弧內給出value元素所需的值即可。這可以應用於任何合法類型的元素,當然了,這限制了元素名必須為value。

4. JDK1.8註解增強

TYPE_PARAMETER和TYPE_USE

在JDK1.8中ElementType多了兩個枚舉成員,TYPE_PARAMETER和TYPE_USE,他們都是用來限定哪個類型可以進行註解。舉例來說,如果想要對泛型的類型參數進行註解:

public class AnnotationTypeParameter@TestTypeParam T {}

那麼,在定義@TestTypeParam時,必須在@Target設置ElementType.TYPE_PARAMETER,表示這個註解可以用來標註類型參數。例如:

@Target(ElementType.TYPE_PARAMETER)

@Retention(RetentionPolicy.RUNTIME)

public @interface TestTypeParam {}

ElementType.TYPE_USE用於標註各種類型,因此上面的例子也可以將TYPE_PARAMETER改為TYPE_USE,一個註解被設置為TYPE_USE,只要是類型名稱,都可以進行註解。例如有如下注解定義:

@Target(ElementType.TYPE_USE)

@Retention(RetentionPolicy.RUNTIME)

public @interface Test {}

那麼以下的使用註解都是可以的:

List@Test Comparable list1 = new ArrayList();

List? extends Comparable list2 = new ArrayList@Test Comparable();

@Test String text;

text = (@Test String)new Object();

java.util. @Test Scanner console;

console = new java.util.@Test Scanner(System.in);

PS:以上@Test註解都是在類型的右邊,要注意區分1.8之前的枚舉成員,例如:

@Test java.lang.String text;

在上面這個例子中,顯然是在進行text變數標註,所以還使用當前的@Target會編譯錯誤,應該加上ElementType.LOCAL_VARIABLE。

@Repeatable註解

@Repeatable註解是JDK1.8新加入的,從名字意思就可以大概猜出他的意思(可重複的)。可以在同一個位置重複相同的註解。舉例:

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

public @interface Filter {

String [] value();

}

如下進行註解使用:

@Filter({「/admin」,」/main」})

public class MainFilter { }

換一種風格:

@Filter(「/admin」)

@Filter(「/main」)

public class MainFilter {}

在JDK1.8還沒出現之前,沒有辦法到達這種「風格」,使用1.8,可以如下定義@Filter:

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Repeatable(Filters.class)

public @interface Filter {

String value();

}

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

public @interface Filters {

Filter [] value();

}

實際上這是編譯器的優化,使用@Repeatable時告訴編譯器,使用@Filters來作為收集重複註解的容器,而每個@Filter存儲各自指定的字元串值。

JDK1.8在AnnotatedElement介面新增了getDeclaredAnnotationsByType和getAnnotationsByType,在指定@Repeatable的註解時,會尋找重複註解的容器中。相對於,getDeclaredAnnotation和getAnnotation就不會處理@Repeatable註解。舉例如下:

@Filter(「/admin」)

@Filter(「/filter」)

public class FilterClass {

public static void main(String[] args) {

ClassFilterClass filterClassClass = FilterClass.class;

Filter[] annotationsByType = filterClassClass.getAnnotationsByType(Filter.class);

if (annotationsByType != null) {

for (Filter filter : annotationsByType) {

System.out.println(filter.value());

}

}

System.out.println(filterClassClass.getAnnotation(Filter.class));

}

}

日誌如下:

/admin

/filter

null

望採納!

Java 文檔注釋中的幾個Tag標記

code/code 標籤用於表示計算機源代碼或者其他機器可以閱讀的文本內容

tt/tt 標籤呈現類似打字機或者等寬的文本效果。

p 一個段落,每個段落之間一般會有一個空行。

i/i 標籤顯示斜體文本效果

a/a 增加鏈接

java注釋里的這些標記分別是什麼意思?

方法/步驟

java注釋,總共有3種注釋方法。

1、注釋一行(在eclipse里的快捷鍵是:crtl+/)。快捷鍵按一下注釋,再按一下,取消注釋。

//內容

//內容

2、注釋多行、塊注釋(在eclipse里的快捷鍵是:crtl+shift+/)。快捷鍵按一下注釋,再按一下,不能取消注釋。只能人為的刪除。

/*內容

內容

內容*/

3、文檔注釋(在eclipse里的快捷鍵是:/**+enter)。快捷鍵按一下注釋。僅這注釋方法可以寫入javadoc文檔

/** 內容

*內容

*內容

*/

4、javadoc注釋標籤語法的一些說明。(你可以輸入@,在加alt+/(補全鍵))

@author  對類的說明–標明開發該類模塊的作者

@version  對類的說明–標明該類模塊的版本

@param    對方法的說明–方法中某參數的說明

@return  對方法的說明–方法返回值的說明

@exception  對方法的說明–方法可能拋出的異常的說明

注釋的一些要求。

注釋內容要簡單、明了、含義準確,防止注釋的多義性,錯誤的注釋不但無益反而有害。

END

注意事項

注釋內容是不被編輯的內容,只是解釋說明

注釋,為了更方便的閱讀

每次單行注釋、多行注釋,要選中要注釋的內容

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130705.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:29
下一篇 2024-10-03 23:29

相關推薦

  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python通配符有哪些

    Python通配符是一種表示字元串中模糊匹配的有效工具,用於匹配與具有特定模式匹配的字元串。Python中主要的通配符有:*,?,[]和{}。 一、星號通配符 * 在Python中…

    編程 2025-04-29
  • 註冊表取證工具有哪些

    註冊表取證是數字取證的重要分支,主要是獲取計算機系統中的註冊表信息,進而分析痕迹,獲取重要證據。本文將以註冊表取證工具為中心,從多個方面進行詳細闡述。 一、註冊表取證工具概述 註冊…

    編程 2025-04-29
  • Python函數類型有哪些

    本文將從以下幾個方面詳細闡述Python函數類型。 一、內置函數 Python的內置函數是指在Python編程語言中提供的可以直接使用的函數,不需要通過導入模塊等方式引入。 部分常…

    編程 2025-04-29
  • Python程序變數名有哪些

    Python是一種高級、面向對象、解釋型編程語言,它因為其簡潔明了的語法和廣泛的應用領域而被廣泛使用。在Python中,變數名是關鍵的標識符,它們用於訪問存儲在內存中的值。本文將介…

    編程 2025-04-28
  • Python條形圖添加數據標籤

    Python是一種多用途、高級、解釋型編程語言。它是一種動態類型語言,具有高級內置數據結構,支持面向對象編程、結構化編程和函數式編程方式。Python語言旨在簡化代碼的閱讀、編寫和…

    編程 2025-04-28
  • 北京有哪些好的Python培訓機構

    想要成為一名全能開發工程師,Python是必不可少的編程語言之一。在北京,Python培訓機構也是各式各樣。下面就從教學質量、師資力量、教學內容、服務質量等多個方面,為大家推薦幾個…

    編程 2025-04-28
  • Python按標籤分類切分數據解析

    本文將為大家詳細介紹如何使用Python按標籤分類切分數據。如果您需要對數據進行分類處理,可以閱讀本文,並按照給出的例子運用到實際的項目之中。 一、按標籤分類切分數據的概念及應用場…

    編程 2025-04-28
  • Python文本處理第三方庫有哪些

    Python是一種高級語言,它的功能非常強大和全面,其中最重要之一就是它的文本處理能力。文本處理對於自然語言處理以及大數據分析都有著非常重要的作用。Python的標準庫提供了字元串…

    編程 2025-04-27
  • 有哪些Python軟體可以用來構建Web應用

    Python語言是一種膠水語言,可以和多種語言以及系統進行交互,廣泛應用於多個領域。在Web應用開發領域,Python是一個功能強大的語言,在Python社區中有許多優秀的Web應…

    編程 2025-04-27

發表回復

登錄後才能評論