Java 注釋

2018-01-19 11:32 更新

Java面向?qū)ο笤O(shè)計(jì) - Java注釋

什么是注釋?

Java中的注釋允許我們將元數(shù)據(jù)與程序元素相關(guān)聯(lián)。

程序元素可以是包,類,接口,類的字段,局部變量,方法,方法的參數(shù),枚舉,注釋,泛型類型/方法聲明中的類型參數(shù),等等。

我們可以在Java程序中注釋任何聲明或類型。注釋在任何其他修飾符(public,private,final,static等)的程序元素的聲明中用作修飾符。

與修飾符不同,注釋不會(huì)修改程序元素的含義。它是程序元素的注釋。


聲明注釋類型

聲明注釋類型類似于聲明接口類型。

注釋類型是一種特殊類型的接口類型。

我們使用前面帶有@符號(hào)的interface關(guān)鍵字來聲明注釋類型。

以下是聲明注釋類型的一般語法:

<modifiers> @interface <annotation-type-name>  {
    // Annotation type body
}

注釋聲明的<modifiers>與接口聲明的相同。

我們可以將注解類型聲明為public或package級(jí)別。

@符號(hào)和interface關(guān)鍵字可以用空格分隔,也可以放在一起。

按照慣例,它們被放在一起作為 @interface 。

interface關(guān)鍵字后面是注釋類型名稱。它應(yīng)該是有效的Java標(biāo)識(shí)符。

注釋類型正文放在大括號(hào)中。

以下代碼創(chuàng)建注釋以使用版本信息注釋程序元素。

public  @interface  Version {
    int  major();
    int  minor();
}

我們在Version注釋類型中聲明了兩個(gè)抽象方法:major()和minor()。

注釋類型中的抽象方法稱為元素。

注釋可以聲明零個(gè)或多個(gè)元素,它們被聲明為抽象方法。抽象方法名稱是注釋類型的元素的名稱。

在上面的代碼中,我們?yōu)閂ersion注釋類型聲明了兩個(gè)元素major和minor。兩個(gè)元素的數(shù)據(jù)類型都是int。

我們需要導(dǎo)入注釋類型,方式與導(dǎo)入任何其他類型的方式相同。


注釋實(shí)例

要?jiǎng)?chuàng)建注釋類型的實(shí)例并使用它來注釋程序元素,我們使用以下語法:

@annotationType(name1=value1,  name2=value2, names3=values3...)

注釋類型前面帶有一個(gè)@符號(hào),后面跟著用括號(hào)括起來的逗號(hào)分隔的name = value對列表。

name=value對中的名稱是在注釋類型中聲明的元素的名稱,值由用戶提供。

name=value對不必按照在注釋類型中聲明的順序顯示。

以下代碼使用Version類型的注釋,主要元素值設(shè)置為1,次要元素值設(shè)置為0。

@Version(major=1, minor=0)

我們可以使用注釋類型的完全限定名

@com.w3cschool.annotation.Version(major=0,  minor=1)

我們可以將類聲明注釋為

@Version(major=1, minor=0)
public  class  VersionTest {

}

我們可以將程序元素的注釋與其他修飾符混合使用。

@Version(major=1, minor=0)  public  class  VersionTest {
}

public  @Version(major=1, minor=0)  class  VersionTest {
}

完整的源代碼

@interface Version {
  int major();

  int minor();
}

@Version(major = 1, minor = 0)
public class Main {
  @Version(major = 1, minor = 1)
  private int xyz = 110;

  @Version(major = 1, minor = 0)
  public Main() {
  }

  @Version(major = 1, minor = 1)
  public Main(int xyz) {
    this.xyz = xyz;
  }

  @Version(major = 1, minor = 0)
  public void printData() {
  }

  @Version(major = 1, minor = 1)
  public void setXyz(int xyz) {

    @Version(major = 1, minor = 2)
    int newValue = xyz;

    this.xyz = xyz;
  }
}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)