鴻蒙OS Package

2022-05-18 16:18 更新

Package

java.lang.Object

|---java.lang.Package

public class Package
extends Object
implements AnnotatedElement

包對象包含有關(guān) Java 包的實現(xiàn)和規(guī)范的版本信息。 此版本信息由加載類的 ClassLoader 實例檢索并提供。 通常,它存儲在與類一起分發(fā)的清單中。

組成包的類集可以實現(xiàn)特定的規(guī)范,如果是這樣,規(guī)范標題、版本號和供應(yīng)商字符串標識該規(guī)范。 應(yīng)用程序可以詢問包是否與特定版本兼容,有關(guān)詳細信息,請參閱 isCompatibleWith 方法。

規(guī)范版本號使用由句點“.”分隔的非負十進制整數(shù)組成的語法,例如“2.0”或“1.2.3.4.5.6.7”。 這允許使用可擴展的數(shù)字來表示主要、次要、微型等版本。 版本規(guī)范由以下形式語法描述:

規(guī)格版本:

Digits RefinedVersionopt

精煉版:

. Digits

. Digits RefinedVersion

Digits:

Digit

Digits

Digit:

Character#isDigit 返回 true 的任何字符,例如 0, 1, 2, ...

實現(xiàn)標題、版本和供應(yīng)商字符串標識了一個實現(xiàn),并且可以方便地使用,以便在發(fā)生問題時準確報告所涉及的包。 所有三個實現(xiàn)字符串的內(nèi)容都是特定于供應(yīng)商的。 實現(xiàn)版本字符串沒有指定的語法,只應(yīng)與所需的版本標識符比較是否相等。

在每個 ClassLoader 實例中,來自同一個 java 包的所有類都具有相同的 Package 對象。 靜態(tài)方法允許通過名稱或當前類加載器已知的所有包的集合找到包。

方法總結(jié)

修飾符和類型 方法 描述
<A extends Annotation>A getAnnotation(Class<A> annotationClass) 如果存在這樣的注釋,則返回此元素的指定類型的注釋,否則返回 null。
Annotation[] getAnnotations() 返回此元素上存在的注釋。
<A extends Annotation>A[] getAnnotationsByType(Class<A> annotationClass) 返回與此元素關(guān)聯(lián)的注釋。
<A extends Annotation>A getDeclaredAnnotation(Class<A> annotationClass) 如果直接存在這樣的注釋,則返回此元素的指定類型的注釋,否則返回 null。
Annotation[] getDeclaredAnnotations() 返回此元素上直接存在的注釋。
<A extends Annotation>A[] getDeclaredAnnotationsByType(Class<A> annotationClass) 如果此類注釋直接存在或間接存在,則返回指定類型的此元素的注釋。
String getImplementationTitle() 返回此包的標題。
String getImplementationVendor() 返回提供此實現(xiàn)的組織、供應(yīng)商或公司的名稱。
String getImplementationVersion() 返回此實現(xiàn)的版本。
String getName() 返回此包的名稱。
static Package getPackage(String name) 在調(diào)用者 ClassLoader 實例中按名稱查找包。
static Package[] getPackages() 獲取調(diào)用者的 ClassLoader 實例當前已知的所有包。
String getSpecificationTitle() 返回此包實現(xiàn)的規(guī)范的標題。
String getSpecificationVendor() 返回擁有并維護實現(xiàn)此包的類規(guī)范的組織、供應(yīng)商或公司的名稱。
String getSpecificationVersion() 返回此包實現(xiàn)的規(guī)范的版本號。
int hashCode() 返回根據(jù)包名稱計算的哈希碼。
boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) 如果此元素上存在指定類型的注釋,則返回 true,否則返回 false。
boolean isCompatibleWith(String desired) 將此包的規(guī)格版本與所需版本進行比較。
boolean isSealed() 如果此包已密封,則返回 true。
boolean isSealed(URL url) 如果此包相對于指定的代碼源 url 是密封的,則返回 true。
String toString() 返回此包的字符串表示形式。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait

方法詳情

getName

public String getName()

返回此包的名稱。

返回:

《The Java? Language Specification》第 6.5.3 節(jié)中定義的該包的完全限定名稱,例如 java.lang

getSpecificationTitle

public String getSpecificationTitle()

返回此包實現(xiàn)的規(guī)范的標題。

返回:

規(guī)范標題,如果不知道則返回null。

getSpecificationVersion

public String getSpecificationVersion()

返回此包實現(xiàn)的規(guī)范的版本號。 此版本字符串必須是由“.”分隔的非負十進制整數(shù)序列,并且可能有前導(dǎo)零。 當比較版本字符串時,比較最重要的數(shù)字。

返回:

規(guī)范版本,如果不知道則返回null。

getSpecificationVendor

public String getSpecificationVendor()

返回擁有并維護實現(xiàn)此包的類規(guī)范的組織、供應(yīng)商或公司的名稱。

返回:

規(guī)范供應(yīng)商,如果未知則返回 null。

getImplementationTitle

public String getImplementationTitle()

返回此包的標題。

返回:

實現(xiàn)的標題,如果不知道則返回null。

getImplementationVersion

public String getImplementationVersion()

返回此實現(xiàn)的版本。 它由此實現(xiàn)的供應(yīng)商分配的任何字符串組成,并且沒有 Java 運行時指定或期望的任何特定語法。 它可以與此供應(yīng)商為此包用于此實現(xiàn)的其他包版本字符串進行比較是否相等。

返回:

實現(xiàn)的版本,如果不知道則返回null。

getImplementationVendor

public String getImplementationVendor()

返回提供此實現(xiàn)的組織、供應(yīng)商或公司的名稱。

返回:

實施此軟件包的供應(yīng)商。

isSealed

public boolean isSealed()

如果此包已密封,則返回 true。

返回:

如果包裹是密封的,則為 true,否則為 false。

isSealed

public boolean isSealed(URL url)

如果此包相對于指定的代碼源 url 是密封的,則返回 true。

參數(shù):

參數(shù)名稱 參數(shù)描述
url 代碼源地址

返回:

如果此包相對于 url 是密封的,則為 true

isCompatibleWith

public boolean isCompatibleWith(String desired) throws NumberFormatException

將此包的規(guī)格版本與所需版本進行比較。 如果此包規(guī)范版本號大于或等于所需的版本號,則返回 true。

通過順序比較期望字符串和規(guī)范字符串的相應(yīng)組件來比較版本號。 每個組件都轉(zhuǎn)換為十進制整數(shù)并比較值。 如果規(guī)范值大于期望值,則返回 true。 如果值小于 false 則返回。 如果值相等,則跳過周期并比較下一對分量。

參數(shù):

參數(shù)名稱 參數(shù)描述
desired 所需版本的版本字符串。

返回:

如果此包的版本號大于或等于所需的版本號,則為 true

Throws:

Throw名稱 Throw描述
NumberFormatException 如果所需或當前版本不是正確的虛線形式。

getPackage

public static Package getPackage(String name)

在調(diào)用者 ClassLoader 實例中按名稱查找包。 調(diào)用者 ClassLoader 實例用于查找與命名類對應(yīng)的包實例。 如果調(diào)用者 ClassLoader 實例為空,則搜索由系統(tǒng) ClassLoader 實例加載的包集以查找命名包。

僅當類加載器創(chuàng)建具有適當屬性的包實例時,包才具有版本和規(guī)范的屬性。 通常,這些屬性在伴隨類的清單中定義。

參數(shù):

參數(shù)名稱 參數(shù)描述
name 包名,例如 java.lang。

返回:

請求名稱的包。 如果存檔或代碼庫中沒有可用的包信息,則它可能為 null。

getPackages

public static Package[] getPackages()

獲取調(diào)用者的 ClassLoader 實例當前已知的所有包。 這些包對應(yīng)于通過該 ClassLoader 實例加載或按名稱可訪問的類。 如果調(diào)用者的ClassLoader實例是bootstrap ClassLoader實例,在某些實現(xiàn)中可能用null表示,則只會返回bootstrap ClassLoader實例加載的類對應(yīng)的包。

返回:

調(diào)用者 ClassLoader 實例已知的新包數(shù)組。 如果不知道,則返回零長度數(shù)組。

hashCode

public int hashCode()

返回根據(jù)包名稱計算的哈希碼。

覆蓋:

類 Object 中的 hashCode

返回:

從包名稱計算的哈希碼。

toString

public String toString()

返回此包的字符串表示形式。 它的值是字符串“package”和包名。 如果定義了包標題,則會附加它。 如果定義了包版本,則附加它。

覆蓋:

類 Object 中的 toString

返回:

包的字符串表示形式。

getAnnotation

public <A extends Annotation> A getAnnotation(Class<A> annotationClass)

從接口復(fù)制的描述:AnnotatedElement

如果存在這樣的注釋,則返回此元素的指定類型的注釋,否則返回 null。

指定者:

接口 AnnotatedElement 中的 getAnnotation

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
A 要查詢并返回的注釋類型(如果存在)

參數(shù):

參數(shù)名稱 參數(shù)描述
annotationClass 注解類型對應(yīng)的Class對象

返回:

此元素的指定注釋類型的注釋(如果存在于此元素上),否則為 null

Throws:

Throw名稱 Throw描述
NullPointerException 如果給定的注釋類為空

isAnnotationPresent

public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)

如果此元素上存在指定類型的注釋,則返回 true,否則返回 false。 此方法主要是為了方便訪問標記注釋而設(shè)計的。

該方法返回的真值等價于:getAnnotation(annotationClass) != null

默認方法的主體被指定為上面的代碼。

指定者:

接口 AnnotatedElement 中的 isAnnotationPresent

參數(shù):

參數(shù)名稱 參數(shù)描述
annotationClass 注解類型對應(yīng)的Class對象

返回:

如果此元素上存在指定注釋類型的注釋,則為 true,否則為 false

Throws:

Throw名稱 Throw描述
NullPointerException if the given annotation class is null

getAnnotationsByType

public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)

從接口復(fù)制的描述:AnnotatedElement

返回與此元素關(guān)聯(lián)的注釋。 如果沒有與該元素關(guān)聯(lián)的注解,則返回值為長度為 0 的數(shù)組。該方法與 AnnotatedElement.getAnnotation(java.lang.Class) 的區(qū)別在于該方法檢測其參數(shù)是否為可重復(fù)的注解類型( JLS 9.6),如果是這樣,則嘗試通過“查看”容器注釋來查找該類型的一個或多個注釋。 該方法的調(diào)用者可以隨意修改返回的數(shù)組; 它不會影響返回給其他調(diào)用者的數(shù)組。

指定者:

接口 AnnotatedElement 中的 getAnnotationsByType

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
A 要查詢并返回的注釋類型(如果存在)

參數(shù):

參數(shù)名稱 參數(shù)描述
annotationClass 注解類型對應(yīng)的Class對象

返回:

如果與此元素相關(guān)聯(lián),則指定注釋類型的所有此元素的注釋,否則為長度為零的數(shù)組

Throws:

Throw名稱 Throw描述
NullPointerException 如果給定的注釋類為空

getAnnotations

public Annotation[] getAnnotations()

從接口復(fù)制的描述:AnnotatedElement

返回此元素上存在的注釋。 如果此元素上沒有注釋,則返回值為長度為 0 的數(shù)組。此方法的調(diào)用者可以自由修改返回的數(shù)組; 它不會影響返回給其他調(diào)用者的數(shù)組。

指定者:

接口 AnnotatedElement 中的 getAnnotations

返回:

此元素上存在的注釋

getDeclaredAnnotation

public <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)

從接口復(fù)制的描述:AnnotatedElement

如果直接存在這樣的注釋,則返回此元素的指定類型的注釋,否則返回 null。 此方法忽略繼承的注釋。 (如果此元素上沒有直接存在注釋,則返回 null。)

指定者:

接口 AnnotatedElement 中的 getDeclaredAnnotation

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
A 要查詢并返回的注釋類型(如果直接存在)

參數(shù):

參數(shù)名稱 參數(shù)描述
annotationClass 注解類型對應(yīng)的Class對象

返回:

如果直接存在于此元素上,則此元素的指定注釋類型的注釋,否則為 null

Throws:

Throw名稱 Throw描述
NullPointerException 如果給定的注釋類為空

getDeclaredAnnotationsByType

public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)

從接口復(fù)制的描述:AnnotatedElement

如果此類注釋直接存在或間接存在,則返回指定類型的此元素的注釋。 此方法忽略繼承的注釋。 如果此元素上沒有直接或間接存在指定的注解,則返回值為長度為 0 的數(shù)組。此方法與 AnnotatedElement.getDeclaredAnnotation(java.lang.Class) 的區(qū)別在于該方法檢測其參數(shù)是否為 可重復(fù)的注釋類型(JLS 9.6),如果是這樣,則嘗試通過“查看”容器注釋來查找該類型的一個或多個注釋(如果存在)。 該方法的調(diào)用者可以隨意修改返回的數(shù)組; 它不會影響返回給其他調(diào)用者的數(shù)組。

指定者:

接口 AnnotatedElement 中的 getDeclaredAnnotationsByType

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
A 如果直接或間接存在,則要查詢和返回的注釋類型

參數(shù):

參數(shù)名稱 參數(shù)描述
annotationClass 注解類型對應(yīng)的Class對象

返回:

如果直接或間接存在于此元素上,則指定注釋類型的所有此元素的注釋,否則長度為零的數(shù)組

Throws:

Throw名稱 Throw描述
NullPointerException 如果給定的注釋類為空

getDeclaredAnnotations

public Annotation[] getDeclaredAnnotations()

從接口復(fù)制的描述:AnnotatedElement

返回此元素上直接存在的注釋。 此方法忽略繼承的注釋。 如果此元素上沒有直接存在注釋,則返回值為長度為 0 的數(shù)組。此方法的調(diào)用者可以自由修改返回的數(shù)組; 它不會影響返回給其他調(diào)用者的數(shù)組。

指定者:

接口 AnnotatedElement 中的 getDeclaredAnnotations

返回:

直接出現(xiàn)在此元素上的注釋

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號