W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.lang.Package
public class Package
extends Object
implements AnnotatedElement
包對(duì)象包含有關(guān) Java 包的實(shí)現(xiàn)和規(guī)范的版本信息。 此版本信息由加載類(lèi)的 ClassLoader 實(shí)例檢索并提供。 通常,它存儲(chǔ)在與類(lèi)一起分發(fā)的清單中。
組成包的類(lèi)集可以實(shí)現(xiàn)特定的規(guī)范,如果是這樣,規(guī)范標(biāo)題、版本號(hào)和供應(yīng)商字符串標(biāo)識(shí)該規(guī)范。 應(yīng)用程序可以詢(xún)問(wèn)包是否與特定版本兼容,有關(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ù)字來(lái)表示主要、次要、微型等版本。 版本規(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ā)生問(wèn)題時(shí)準(zhǔn)確報(bào)告所涉及的包。 所有三個(gè)實(shí)現(xiàn)字符串的內(nèi)容都是特定于供應(yīng)商的。 實(shí)現(xiàn)版本字符串沒(méi)有指定的語(yǔ)法,只應(yīng)與所需的版本標(biāo)識(shí)符比較是否相等。
在每個(gè) ClassLoader 實(shí)例中,來(lái)自同一個(gè) java 包的所有類(lèi)都具有相同的 Package 對(duì)象。 靜態(tài)方法允許通過(guò)名稱(chēng)或當(dāng)前類(lèi)加載器已知的所有包的集合找到包。
修飾符和類(lèi)型 | 方法 | 描述 |
---|---|---|
<A extends Annotation>A | getAnnotation(Class<A> annotationClass) | 如果存在這樣的注釋?zhuān)瑒t返回此元素的指定類(lèi)型的注釋?zhuān)駝t返回 null。 |
Annotation[] | getAnnotations() | 返回此元素上存在的注釋。 |
<A extends Annotation>A[] | getAnnotationsByType(Class<A> annotationClass) | 返回與此元素關(guān)聯(lián)的注釋。 |
<A extends Annotation>A | getDeclaredAnnotation(Class<A> annotationClass) | 如果直接存在這樣的注釋?zhuān)瑒t返回此元素的指定類(lèi)型的注釋?zhuān)駝t返回 null。 |
Annotation[] | getDeclaredAnnotations() | 返回此元素上直接存在的注釋。 |
<A extends Annotation>A[] | getDeclaredAnnotationsByType(Class<A> annotationClass) | 如果此類(lèi)注釋直接存在或間接存在,則返回指定類(lèi)型的此元素的注釋。 |
String | getImplementationTitle() | 返回此包的標(biāo)題。 |
String | getImplementationVendor() | 返回提供此實(shí)現(xiàn)的組織、供應(yīng)商或公司的名稱(chēng)。 |
String | getImplementationVersion() | 返回此實(shí)現(xiàn)的版本。 |
String | getName() | 返回此包的名稱(chēng)。 |
static Package | getPackage(String name) | 在調(diào)用者 ClassLoader 實(shí)例中按名稱(chēng)查找包。 |
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)此包的類(lèi)規(guī)范的組織、供應(yīng)商或公司的名稱(chēng)。 |
String | getSpecificationVersion() | 返回此包實(shí)現(xiàn)的規(guī)范的版本號(hào)。 |
int | hashCode() | 返回根據(jù)包名稱(chēng)計(jì)算的哈希碼。 |
boolean | isAnnotationPresent(Class<? extends Annotation> annotationClass) | 如果此元素上存在指定類(lèi)型的注釋?zhuān)瑒t返回 true,否則返回 false。 |
boolean | isCompatibleWith(String desired) | 將此包的規(guī)格版本與所需版本進(jìn)行比較。 |
boolean | isSealed() | 如果此包已密封,則返回 true。 |
boolean | isSealed(URL url) | 如果此包相對(duì)于指定的代碼源 url 是密封的,則返回 true。 |
String | toString() | 返回此包的字符串表示形式。 |
從類(lèi) java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait |
public String getName()
返回此包的名稱(chēng)。
返回:
《The Java? Language Specification》第 6.5.3 節(jié)中定義的該包的完全限定名稱(chēng),例如 java.lang
public String getSpecificationTitle()
返回此包實(shí)現(xiàn)的規(guī)范的標(biāo)題。
返回:
規(guī)范標(biāo)題,如果不知道則返回null。
public String getSpecificationVersion()
返回此包實(shí)現(xiàn)的規(guī)范的版本號(hào)。 此版本字符串必須是由“.”分隔的非負(fù)十進(jìn)制整數(shù)序列,并且可能有前導(dǎo)零。 當(dāng)比較版本字符串時(shí),比較最重要的數(shù)字。
返回:
規(guī)范版本,如果不知道則返回null。
public String getSpecificationVendor()
返回?fù)碛胁⒕S護(hù)實(shí)現(xiàn)此包的類(lèi)規(guī)范的組織、供應(yīng)商或公司的名稱(chēng)。
返回:
規(guī)范供應(yīng)商,如果未知?jiǎng)t返回 null。
public String getImplementationTitle()
返回此包的標(biāo)題。
返回:
實(shí)現(xiàn)的標(biāo)題,如果不知道則返回null。
public String getImplementationVersion()
返回此實(shí)現(xiàn)的版本。 它由此實(shí)現(xiàn)的供應(yīng)商分配的任何字符串組成,并且沒(méi)有 Java 運(yùn)行時(shí)指定或期望的任何特定語(yǔ)法。 它可以與此供應(yīng)商為此包用于此實(shí)現(xiàn)的其他包版本字符串進(jìn)行比較是否相等。
返回:
實(shí)現(xiàn)的版本,如果不知道則返回null。
public String getImplementationVendor()
返回提供此實(shí)現(xiàn)的組織、供應(yīng)商或公司的名稱(chēng)。
返回:
實(shí)施此軟件包的供應(yīng)商。
public boolean isSealed()
如果此包已密封,則返回 true。
返回:
如果包裹是密封的,則為 true,否則為 false。
public boolean isSealed(URL url)
如果此包相對(duì)于指定的代碼源 url 是密封的,則返回 true。
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
url | 代碼源地址 |
返回:
如果此包相對(duì)于 url 是密封的,則為 true
public boolean isCompatibleWith(String desired) throws NumberFormatException
將此包的規(guī)格版本與所需版本進(jìn)行比較。 如果此包規(guī)范版本號(hào)大于或等于所需的版本號(hào),則返回 true。
通過(guò)順序比較期望字符串和規(guī)范字符串的相應(yīng)組件來(lái)比較版本號(hào)。 每個(gè)組件都轉(zhuǎn)換為十進(jìn)制整數(shù)并比較值。 如果規(guī)范值大于期望值,則返回 true。 如果值小于 false 則返回。 如果值相等,則跳過(guò)周期并比較下一對(duì)分量。
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
desired | 所需版本的版本字符串。 |
返回:
如果此包的版本號(hào)大于或等于所需的版本號(hào),則為 true
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NumberFormatException | 如果所需或當(dāng)前版本不是正確的虛線(xiàn)形式。 |
public static Package getPackage(String name)
在調(diào)用者 ClassLoader 實(shí)例中按名稱(chēng)查找包。 調(diào)用者 ClassLoader 實(shí)例用于查找與命名類(lèi)對(duì)應(yīng)的包實(shí)例。 如果調(diào)用者 ClassLoader 實(shí)例為空,則搜索由系統(tǒng) ClassLoader 實(shí)例加載的包集以查找命名包。
僅當(dāng)類(lèi)加載器創(chuàng)建具有適當(dāng)屬性的包實(shí)例時(shí),包才具有版本和規(guī)范的屬性。 通常,這些屬性在伴隨類(lèi)的清單中定義。
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
name | 包名,例如 java.lang。 |
返回:
請(qǐng)求名稱(chēng)的包。 如果存檔或代碼庫(kù)中沒(méi)有可用的包信息,則它可能為 null。
public static Package[] getPackages()
獲取調(diào)用者的 ClassLoader 實(shí)例當(dāng)前已知的所有包。 這些包對(duì)應(yīng)于通過(guò)該 ClassLoader 實(shí)例加載或按名稱(chēng)可訪(fǎng)問(wèn)的類(lèi)。 如果調(diào)用者的ClassLoader實(shí)例是bootstrap ClassLoader實(shí)例,在某些實(shí)現(xiàn)中可能用null表示,則只會(huì)返回bootstrap ClassLoader實(shí)例加載的類(lèi)對(duì)應(yīng)的包。
返回:
調(diào)用者 ClassLoader 實(shí)例已知的新包數(shù)組。 如果不知道,則返回零長(zhǎng)度數(shù)組。
public int hashCode()
返回根據(jù)包名稱(chēng)計(jì)算的哈希碼。
覆蓋:
類(lèi) Object 中的 hashCode
返回:
從包名稱(chēng)計(jì)算的哈希碼。
public String toString()
返回此包的字符串表示形式。 它的值是字符串“package”和包名。 如果定義了包標(biāo)題,則會(huì)附加它。 如果定義了包版本,則附加它。
覆蓋:
類(lèi) Object 中的 toString
返回:
包的字符串表示形式。
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
從接口復(fù)制的描述:AnnotatedElement
如果存在這樣的注釋?zhuān)瑒t返回此元素的指定類(lèi)型的注釋?zhuān)駝t返回 null。
指定者:
接口 AnnotatedElement 中的 getAnnotation
類(lèi)型參數(shù):
類(lèi)型參數(shù)名稱(chēng) | 類(lèi)型參數(shù)描述 |
---|---|
A | 要查詢(xún)并返回的注釋類(lèi)型(如果存在) |
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
annotationClass | 注解類(lèi)型對(duì)應(yīng)的Class對(duì)象 |
返回:
此元素的指定注釋類(lèi)型的注釋?zhuān)ㄈ绻嬖谟诖嗽厣希?,否則為 null
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NullPointerException | 如果給定的注釋類(lèi)為空 |
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
如果此元素上存在指定類(lèi)型的注釋?zhuān)瑒t返回 true,否則返回 false。 此方法主要是為了方便訪(fǎng)問(wèn)標(biāo)記注釋而設(shè)計(jì)的。
該方法返回的真值等價(jià)于:getAnnotation(annotationClass) != null
默認(rèn)方法的主體被指定為上面的代碼。
指定者:
接口 AnnotatedElement 中的 isAnnotationPresent
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
annotationClass | 注解類(lèi)型對(duì)應(yīng)的Class對(duì)象 |
返回:
如果此元素上存在指定注釋類(lèi)型的注釋?zhuān)瑒t為 true,否則為 false
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NullPointerException | if the given annotation class is null |
public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)
從接口復(fù)制的描述:AnnotatedElement
返回與此元素關(guān)聯(lián)的注釋。 如果沒(méi)有與該元素關(guān)聯(lián)的注解,則返回值為長(zhǎng)度為 0 的數(shù)組。該方法與 AnnotatedElement.getAnnotation(java.lang.Class) 的區(qū)別在于該方法檢測(cè)其參數(shù)是否為可重復(fù)的注解類(lèi)型( JLS 9.6),如果是這樣,則嘗試通過(guò)“查看”容器注釋來(lái)查找該類(lèi)型的一個(gè)或多個(gè)注釋。 該方法的調(diào)用者可以隨意修改返回的數(shù)組; 它不會(huì)影響返回給其他調(diào)用者的數(shù)組。
指定者:
接口 AnnotatedElement 中的 getAnnotationsByType
類(lèi)型參數(shù):
類(lèi)型參數(shù)名稱(chēng) | 類(lèi)型參數(shù)描述 |
---|---|
A | 要查詢(xún)并返回的注釋類(lèi)型(如果存在) |
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
annotationClass | 注解類(lèi)型對(duì)應(yīng)的Class對(duì)象 |
返回:
如果與此元素相關(guān)聯(lián),則指定注釋類(lèi)型的所有此元素的注釋?zhuān)駝t為長(zhǎng)度為零的數(shù)組
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NullPointerException | 如果給定的注釋類(lèi)為空 |
public Annotation[] getAnnotations()
從接口復(fù)制的描述:AnnotatedElement
返回此元素上存在的注釋。 如果此元素上沒(méi)有注釋?zhuān)瑒t返回值為長(zhǎng)度為 0 的數(shù)組。此方法的調(diào)用者可以自由修改返回的數(shù)組; 它不會(huì)影響返回給其他調(diào)用者的數(shù)組。
指定者:
接口 AnnotatedElement 中的 getAnnotations
返回:
此元素上存在的注釋
public <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)
從接口復(fù)制的描述:AnnotatedElement
如果直接存在這樣的注釋?zhuān)瑒t返回此元素的指定類(lèi)型的注釋?zhuān)駝t返回 null。 此方法忽略繼承的注釋。 (如果此元素上沒(méi)有直接存在注釋?zhuān)瑒t返回 null。)
指定者:
接口 AnnotatedElement 中的 getDeclaredAnnotation
類(lèi)型參數(shù):
類(lèi)型參數(shù)名稱(chēng) | 類(lèi)型參數(shù)描述 |
---|---|
A | 要查詢(xún)并返回的注釋類(lèi)型(如果直接存在) |
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
annotationClass | 注解類(lèi)型對(duì)應(yīng)的Class對(duì)象 |
返回:
如果直接存在于此元素上,則此元素的指定注釋類(lèi)型的注釋?zhuān)駝t為 null
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NullPointerException | 如果給定的注釋類(lèi)為空 |
public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)
從接口復(fù)制的描述:AnnotatedElement
如果此類(lèi)注釋直接存在或間接存在,則返回指定類(lèi)型的此元素的注釋。 此方法忽略繼承的注釋。 如果此元素上沒(méi)有直接或間接存在指定的注解,則返回值為長(zhǎng)度為 0 的數(shù)組。此方法與 AnnotatedElement.getDeclaredAnnotation(java.lang.Class) 的區(qū)別在于該方法檢測(cè)其參數(shù)是否為 可重復(fù)的注釋類(lèi)型(JLS 9.6),如果是這樣,則嘗試通過(guò)“查看”容器注釋來(lái)查找該類(lèi)型的一個(gè)或多個(gè)注釋?zhuān)ㄈ绻嬖冢?該方法的調(diào)用者可以隨意修改返回的數(shù)組; 它不會(huì)影響返回給其他調(diào)用者的數(shù)組。
指定者:
接口 AnnotatedElement 中的 getDeclaredAnnotationsByType
類(lèi)型參數(shù):
類(lèi)型參數(shù)名稱(chēng) | 類(lèi)型參數(shù)描述 |
---|---|
A | 如果直接或間接存在,則要查詢(xún)和返回的注釋類(lèi)型 |
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
annotationClass | 注解類(lèi)型對(duì)應(yīng)的Class對(duì)象 |
返回:
如果直接或間接存在于此元素上,則指定注釋類(lèi)型的所有此元素的注釋?zhuān)駝t長(zhǎng)度為零的數(shù)組
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NullPointerException | 如果給定的注釋類(lèi)為空 |
public Annotation[] getDeclaredAnnotations()
從接口復(fù)制的描述:AnnotatedElement
返回此元素上直接存在的注釋。 此方法忽略繼承的注釋。 如果此元素上沒(méi)有直接存在注釋?zhuān)瑒t返回值為長(zhǎng)度為 0 的數(shù)組。此方法的調(diào)用者可以自由修改返回的數(shù)組; 它不會(huì)影響返回給其他調(diào)用者的數(shù)組。
指定者:
接口 AnnotatedElement 中的 getDeclaredAnnotations
返回:
直接出現(xiàn)在此元素上的注釋
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: