新聞中心
Package

java.lang.Object
|---java.lang.Package
public class Package
extends Object
implements AnnotatedElement包對(duì)象包含有關(guān) Java 包的實(shí)現(xiàn)和規(guī)范的版本信息。 此版本信息由加載類的 ClassLoader 實(shí)例檢索并提供。 通常,它存儲(chǔ)在與類一起分發(fā)的清單中。
組成包的類集可以實(shí)現(xiàn)特定的規(guī)范,如果是這樣,規(guī)范標(biāo)題、版本號(hào)和供應(yīng)商字符串標(biāo)識(shí)該規(guī)范。 應(yīng)用程序可以詢問包是否與特定版本兼容,有關(guān)詳細(xì)信息,請(qǐng)參閱 isCompatibleWith 方法。
規(guī)范版本號(hào)使用由句點(diǎn)“.”分隔的非負(fù)十進(jìn)制整數(shù)組成的語(yǔ)法,例如“2.0”或“1.2.3.4.5.6.7”。 這允許使用可擴(kuò)展的數(shù)字來表示主要、次要、微型等版本。 版本規(guī)范由以下形式語(yǔ)法描述:
規(guī)格版本:
Digits RefinedVersionopt
精煉版:
. Digits
. Digits RefinedVersion
Digits:
Digit
Digits
Digit:
Character#isDigit 返回 true 的任何字符,例如 0, 1, 2, ...
實(shí)現(xiàn)標(biāo)題、版本和供應(yīng)商字符串標(biāo)識(shí)了一個(gè)實(shí)現(xiàn),并且可以方便地使用,以便在發(fā)生問題時(shí)準(zhǔn)確報(bào)告所涉及的包。 所有三個(gè)實(shí)現(xiàn)字符串的內(nèi)容都是特定于供應(yīng)商的。 實(shí)現(xiàn)版本字符串沒有指定的語(yǔ)法,只應(yīng)與所需的版本標(biāo)識(shí)符比較是否相等。
在每個(gè) ClassLoader 實(shí)例中,來自同一個(gè) java 包的所有類都具有相同的 Package 對(duì)象。 靜態(tài)方法允許通過名稱或當(dāng)前類加載器已知的所有包的集合找到包。
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| A | getAnnotation(Class annotationClass) | 如果存在這樣的注釋,則返回此元素的指定類型的注釋,否則返回 null。 |
| Annotation[] | getAnnotations() | 返回此元素上存在的注釋。 |
| A[] | getAnnotationsByType(Class annotationClass) | 返回與此元素關(guān)聯(lián)的注釋。 |
| A | getDeclaredAnnotation(Class annotationClass) | 如果直接存在這樣的注釋,則返回此元素的指定類型的注釋,否則返回 null。 |
| Annotation[] | getDeclaredAnnotations() | 返回此元素上直接存在的注釋。 |
| A[] | getDeclaredAnnotationsByType(Class annotationClass) | 如果此類注釋直接存在或間接存在,則返回指定類型的此元素的注釋。 |
| String | getImplementationTitle() | 返回此包的標(biāo)題。 |
| String | getImplementationVendor() | 返回提供此實(shí)現(xiàn)的組織、供應(yīng)商或公司的名稱。 |
| String | getImplementationVersion() | 返回此實(shí)現(xiàn)的版本。 |
| String | getName() | 返回此包的名稱。 |
| static Package | getPackage(String name) | 在調(diào)用者 ClassLoader 實(shí)例中按名稱查找包。 |
| static Package[] | getPackages() | 獲取調(diào)用者的 ClassLoader 實(shí)例當(dāng)前已知的所有包。 |
| String | getSpecificationTitle() | 返回此包實(shí)現(xiàn)的規(guī)范的標(biāo)題。 |
| String | getSpecificationVendor() | 返回?fù)碛胁⒕S護(hù)實(shí)現(xiàn)此包的類規(guī)范的組織、供應(yīng)商或公司的名稱。 |
| String | getSpecificationVersion() | 返回此包實(shí)現(xiàn)的規(guī)范的版本號(hào)。 |
| int | hashCode() | 返回根據(jù)包名稱計(jì)算的哈希碼。 |
| boolean | isAnnotationPresent(Class extends Annotation> annotationClass) | 如果此元素上存在指定類型的注釋,則返回 true,否則返回 false。 |
| boolean | isCompatibleWith(String desired) | 將此包的規(guī)格版本與所需版本進(jìn)行比較。 |
| boolean | isSealed() | 如果此包已密封,則返回 true。 |
| boolean | isSealed(URL url) | 如果此包相對(duì)于指定的代碼源 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()
返回此包實(shí)現(xiàn)的規(guī)范的標(biāo)題。
返回:
規(guī)范標(biāo)題,如果不知道則返回null。
getSpecificationVersion
public String getSpecificationVersion()
返回此包實(shí)現(xiàn)的規(guī)范的版本號(hào)。 此版本字符串必須是由“.”分隔的非負(fù)十進(jìn)制整數(shù)序列,并且可能有前導(dǎo)零。 當(dāng)比較版本字符串時(shí),比較最重要的數(shù)字。
返回:
規(guī)范版本,如果不知道則返回null。
getSpecificationVendor
public String getSpecificationVendor()
返回?fù)碛胁⒕S護(hù)實(shí)現(xiàn)此包的類規(guī)范的組織、供應(yīng)商或公司的名稱。
返回:
規(guī)范供應(yīng)商,如果未知?jiǎng)t返回 null。
getImplementationTitle
public String getImplementationTitle()
返回此包的標(biāo)題。
返回:
實(shí)現(xiàn)的標(biāo)題,如果不知道則返回null。
getImplementationVersion
public String getImplementationVersion()
返回此實(shí)現(xiàn)的版本。 它由此實(shí)現(xiàn)的供應(yīng)商分配的任何字符串組成,并且沒有 Java 運(yùn)行時(shí)指定或期望的任何特定語(yǔ)法。 它可以與此供應(yīng)商為此包用于此實(shí)現(xiàn)的其他包版本字符串進(jìn)行比較是否相等。
返回:
實(shí)現(xiàn)的版本,如果不知道則返回null。
getImplementationVendor
public String getImplementationVendor()
返回提供此實(shí)現(xiàn)的組織、供應(yīng)商或公司的名稱。
返回:
實(shí)施此軟件包的供應(yīng)商。
isSealed
public boolean isSealed()
如果此包已密封,則返回 true。
返回:
如果包裹是密封的,則為 true,否則為 false。
isSealed
public boolean isSealed(URL url)
如果此包相對(duì)于指定的代碼源 url 是密封的,則返回 true。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| url | 代碼源地址 |
返回:
如果此包相對(duì)于 url 是密封的,則為 true
isCompatibleWith
public boolean isCompatibleWith(String desired) throws NumberFormatException
將此包的規(guī)格版本與所需版本進(jìn)行比較。 如果此包規(guī)范版本號(hào)大于或等于所需的版本號(hào),則返回 true。
通過順序比較期望字符串和規(guī)范字符串的相應(yīng)組件來比較版本號(hào)。 每個(gè)組件都轉(zhuǎn)換為十進(jìn)制整數(shù)并比較值。 如果規(guī)范值大于期望值,則返回 true。 如果值小于 false 則返回。 如果值相等,則跳過周期并比較下一對(duì)分量。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| desired | 所需版本的版本字符串。 |
返回:
如果此包的版本號(hào)大于或等于所需的版本號(hào),則為 true
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NumberFormatException | 如果所需或當(dāng)前版本不是正確的虛線形式。 |
getPackage
public static Package getPackage(String name)
在調(diào)用者 ClassLoader 實(shí)例中按名稱查找包。 調(diào)用者 ClassLoader 實(shí)例用于查找與命名類對(duì)應(yīng)的包實(shí)例。 如果調(diào)用者 ClassLoader 實(shí)例為空,則搜索由系統(tǒng) ClassLoader 實(shí)例加載的包集以查找命名包。
僅當(dāng)類加載器創(chuàng)建具有適當(dāng)屬性的包實(shí)例時(shí),包才具有版本和規(guī)范的屬性。 通常,這些屬性在伴隨類的清單中定義。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| name | 包名,例如 java.lang。 |
返回:
請(qǐng)求名稱的包。 如果存檔或代碼庫(kù)中沒有可用的包信息,則它可能為 null。
getPackages
public static Package[] getPackages()
獲取調(diào)用者的 ClassLoader 實(shí)例當(dāng)前已知的所有包。 這些包對(duì)應(yīng)于通過該 ClassLoader 實(shí)例加載或按名稱可訪問的類。 如果調(diào)用者的ClassLoader實(shí)例是bootstrap ClassLoader實(shí)例,在某些實(shí)現(xiàn)中可能用null表示,則只會(huì)返回bootstrap ClassLoader實(shí)例加載的類對(duì)應(yīng)的包。
返回:
調(diào)用者 ClassLoader 實(shí)例已知的新包數(shù)組。 如果不知道,則返回零長(zhǎng)度數(shù)組。
hashCode
public int hashCode()
返回根據(jù)包名稱計(jì)算的哈希碼。
覆蓋:
類 Object 中的 hashCode
返回:
從包名稱計(jì)算的哈希碼。
toString
public String toString()
返回此包的字符串表示形式。 它的值是字符串“package”和包名。 如果定義了包標(biāo)題,則會(huì)附加它。 如果定義了包版本,則附加它。
覆蓋:
類 Object 中的 toString
返回:
包的字符串表示形式。
getAnnotation
public A getAnnotation(Class annotationClass)
從接口復(fù)制的描述:AnnotatedElement
如果存在這樣的注釋,則返回此元素的指定類型的注釋,否則返回 null。
指定者:
接口 AnnotatedElement 中的 getAnnotation
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| A | 要查詢并返回的注釋類型(如果存在) |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| annotationClass | 注解類型對(duì)應(yīng)的Class對(duì)象 |
返回:
此元素的指定注釋類型的注釋(如果存在于此元素上),否則為 null
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果給定的注釋類為空 |
isAnnotationPresent
public boolean isAnnotationPresent(Class extends Annotation> annotationClass)
如果此元素上存在指定類型的注釋,則返回 true,否則返回 false。 此方法主要是為了方便訪問標(biāo)記注釋而設(shè)計(jì)的。
該方法返回的真值等價(jià)于:getAnnotation(annotationClass) != null
默認(rèn)方法的主體被指定為上面的代碼。
指定者:
接口 AnnotatedElement 中的 isAnnotationPresent
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| annotationClass | 注解類型對(duì)應(yīng)的Class對(duì)象 |
返回:
如果此元素上存在指定注釋類型的注釋,則為 true,否則為 false
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | if the given annotation class is null |
getAnnotationsByType
public A[] getAnnotationsByType(Class annotationClass)
從接口復(fù)制的描述:AnnotatedElement
返回與此元素關(guān)聯(lián)的注釋。 如果沒有與該元素關(guān)聯(lián)的注解,則返回值為長(zhǎng)度為 0 的數(shù)組。該方法與 AnnotatedElement.getAnnotation(java.lang.Class) 的區(qū)別在于該方法檢測(cè)其參數(shù)是否為可重復(fù)的注解類型( JLS 9.6),如果是這樣,則嘗試通過“查看”容器注釋來查找該類型的一個(gè)或多個(gè)注釋。 該方法的調(diào)用者可以隨意修改返回的數(shù)組; 它不會(huì)影響返回給其他調(diào)用者的數(shù)組。
指定者:
接口 AnnotatedElement 中的 getAnnotationsByType
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| A | 要查詢并返回的注釋類型(如果存在) |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| annotationClass | 注解類型對(duì)應(yīng)的Class對(duì)象 |
返回:
如果與此元素相關(guān)聯(lián),則指定注釋類型的所有此元素的注釋,否則為長(zhǎng)度為零的數(shù)組
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果給定的注釋類為空 |
getAnnotations
public Annotation[] getAnnotations()
從接口復(fù)制的描述:AnnotatedElement
返回此元素上存在的注釋。 如果此元素上沒有注釋,則返回值為長(zhǎng)度為 0 的數(shù)組。此方法的調(diào)用者可以自由修改返回的數(shù)組; 它不會(huì)影響返回給其他調(diào)用者的數(shù)組。
指定者:
接口 AnnotatedElement 中的 getAnnotations
返回:
此元素上存在的注釋
getDeclaredAnnotation
public A getDeclaredAnnotation(Class annotationClass)
從接口復(fù)制的描述:AnnotatedElement
如果直接存在這樣的注釋,則返回此元素的指定類型的注釋,否則返回 null。 此方法忽略繼承的注釋。 (如果此元素上沒有直接存在注釋,則返回 null。)
指定者:
接口 AnnotatedElement 中的 getDeclaredAnnotation
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| A | 要查詢并返回的注釋類型(如果直接存在) |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| annotationClass | 注解類型對(duì)應(yīng)的Class對(duì)象 |
返回:
如果直接存在于此元素上,則此元素的指定注釋類型的注釋,否則為 null
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果給定的注釋類為空 |
getDeclaredAnnotationsByType
public A[] getDeclaredAnnotationsByType(Class annotationClass)
從接口復(fù)制的描述:AnnotatedElement
如果此類注釋直接存在或間接存在,則返回指定類型的此元素的注釋。 此方法忽略繼承的注釋。 如果此元素上沒有直接或間接存在指定的注解,則返回值為長(zhǎng)度為 0 的數(shù)組。此方法與 AnnotatedElement.getDeclaredAnnotation(java.lang.Class) 的區(qū)別在于該方法檢測(cè)其參數(shù)是否為 可重復(fù)的注釋類型(JLS 9.6),如果是這樣,則嘗試通過“查看”容器注釋來查找該類型的一個(gè)或多個(gè)注釋(如果存在)。 該方法的調(diào)用者可以隨意修改返回的數(shù)組; 它不會(huì)影響返回給其他調(diào)用者的數(shù)組。
指定者:
接口 AnnotatedElement 中的 getDeclaredAnnotationsByType
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| A | 如果直接或間接存在,則要查詢和返回的注釋類型 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| annotationClass | 注解類型對(duì)應(yīng)的Class對(duì)象 |
返回:
如果直接或間接存在于此元素上,則指定注釋類型的所有此元素的注釋,否則長(zhǎng)度為零的數(shù)組
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果給定的注釋類為空 |
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()
從接口復(fù)制的描述:AnnotatedElement
返回此元素上直接存在的注釋。 此方法忽略繼承的注釋。 如果此元素上沒有直接存在注釋,則返回值為長(zhǎng)度為 0 的數(shù)組。此方法的調(diào)用者可以自由修改返回的數(shù)組; 它不會(huì)影響返回給其他調(diào)用者的數(shù)組。
指定者:
接口 AnnotatedElement 中的 getDeclaredAnnotations
返回:
直接出現(xiàn)在此元素上的注釋
網(wǎng)頁(yè)標(biāo)題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSPackage
本文URL:http://www.dlmjj.cn/article/djspjec.html


咨詢
建站咨詢
