public class Package
extends Object
implements AnnotatedElement
java.lang.Object | |
↳ | java.lang.Package |
软件包
对象包含有关Java包的实现和规范的版本信息。 这个版本信息被检索并由加载类的ClassLoader
实例提供。 通常,它存储在与类一起分发的清单中。
构成软件包的类集可能会实现特定的规范,如果是这样,规范标题,版本号和供应商字符串将标识该规范。 应用程序可以询问该软件包是否与特定版本兼容,详情请参阅isCompatibleWith
方法。
规范版本号使用由句点“。”分隔的非负十进制整数组成的语法,例如“2.0”或“1.2.3.4.5.6.7”。 这允许可扩展数字用于表示主要版本,次要版本,微型版本等。 版本规范由以下正式语法描述:
- SpecificationVersion:
- Digits RefinedVersionopt
- RefinedVersion:
.
Digits.
Digits RefinedVersion- Digits:
- Digit
- Digits
- Digit:
- any character for which
isDigit(char)
returnstrue
, e.g. 0, 1, 2, ...
实现标题,版本和供应商字符串标识实现并且可以方便地使用,以便在发生问题时能够准确报告涉及的软件包。 所有三个实现字符串的内容都是供应商特定的 实现版本字符串没有指定的语法,只能与期望的版本标识符进行比较。
在每个ClassLoader
实例中,来自相同Java包的所有类都具有相同的Package对象。 静态方法允许通过名称或当前类加载器已知的所有包的集合来找到包。
Public methods |
|
---|---|
<A extends Annotation> A |
getAnnotation(Class<A> annotationClass) |
Annotation[] |
getAnnotations() 返回此元素上的所有注释。 |
<A extends Annotation> A[] |
getAnnotationsByType(Class<A> annotationClass) |
<A extends Annotation> A |
getDeclaredAnnotation(Class<A> annotationClass) |
Annotation[] |
getDeclaredAnnotations() 返回直接出现在此元素上的所有注释。 |
<A extends Annotation> A[] |
getDeclaredAnnotationsByType(Class<A> annotationClass) |
String |
getImplementationTitle() 返回这个包的标题。 |
String |
getImplementationVendor() 返回提供此实现的组织,供应商或公司的名称。 |
String |
getImplementationVersion() 返回此实现的版本。 |
String |
getName() 返回这个包的名字。 |
static 软件包 |
getPackage(String name) 在调用者 |
static Package[] |
getPackages() 获取当前已知的调用者的 |
String |
getSpecificationTitle() 返回这个包实现的规范的标题。 |
String |
getSpecificationVendor() 返回拥有并维护实现此包的类的规范的组织,供应商或公司的名称。 |
String |
getSpecificationVersion() 返回此包实现的规范的版本号。 |
int |
hashCode() 返回从包名称中计算出来的哈希码。 |
boolean |
isCompatibleWith(String desired) 将此软件包的规格版本与所需版本进行比较。 |
boolean |
isSealed(URL url) 如果此包与指定的代码源URL相关,则返回true。 |
boolean |
isSealed() 如果此包已密封,则返回true。 |
String |
toString() 返回此Package的字符串表示形式。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface java.lang.reflect.AnnotatedElement
|
A getAnnotation (Class<A> annotationClass)
Parameters | |
---|---|
annotationClass |
Class
|
Returns | |
---|---|
A |
Throws | |
---|---|
NullPointerException |
Annotation[] getAnnotations ()
返回此元素上的所有注释。 (如果此元素没有注释,则返回长度为零的数组。)此方法的调用方可自由修改返回的数组; 它将不会影响返回给其他调用者的数组。
Returns | |
---|---|
Annotation[] |
all annotations present on this element |
A[] getAnnotationsByType (Class<A> annotationClass)
Parameters | |
---|---|
annotationClass |
Class
|
Returns | |
---|---|
A[] |
Throws | |
---|---|
NullPointerException |
A getDeclaredAnnotation (Class<A> annotationClass)
Parameters | |
---|---|
annotationClass |
Class
|
Returns | |
---|---|
A |
Throws | |
---|---|
NullPointerException |
Annotation[] getDeclaredAnnotations ()
返回直接出现在此元素上的所有注释。 与此接口中的其他方法不同,此方法会忽略继承的注释。 (如果此元素上没有注释,则返回长度为零的数组。)此方法的调用方可自由修改返回的数组; 它将不会影响返回给其他调用者的数组。
Returns | |
---|---|
Annotation[] |
All annotations directly present on this element |
A[] getDeclaredAnnotationsByType (Class<A> annotationClass)
Parameters | |
---|---|
annotationClass |
Class
|
Returns | |
---|---|
A[] |
Throws | |
---|---|
NullPointerException |
String getImplementationTitle ()
返回这个包的标题。
Returns | |
---|---|
String |
the title of the implementation, null is returned if it is not known. |
String getImplementationVendor ()
返回提供此实现的组织,供应商或公司的名称。
Returns | |
---|---|
String |
the vendor that implemented this package.. |
String getImplementationVersion ()
返回此实现的版本。 它由此实现的供应商分配的任何字符串构成,并且没有Java运行时指定或期望的任何特定语法。 可以将该包与该供应商用于该实现的其他包版本字符串进行比较来进行相等性比较。
Returns | |
---|---|
String |
the version of the implementation, null is returned if it is not known. |
String getName ()
返回这个包的名字。
Returns | |
---|---|
String |
The fully-qualified name of this package as defined in section 6.5.3 of The Java™ Language Specification, for example, java.lang |
软件包 getPackage (String name)
在调用者ClassLoader
实例中按名称查找包。 调用者ClassLoader
实例用于查找与指定类相对应的包实例。 如果调用者ClassLoader
实例为空,则搜索由系统ClassLoader
实例加载的一组包以查找指定的包。
仅当类加载器使用适当的属性创建包实例时,包才具有版本和规范的属性。 通常,这些属性在类别附带的清单中定义。
Parameters | |
---|---|
name |
String : a package name, for example, java.lang. |
Returns | |
---|---|
软件包 |
the package of the requested name. It may be null if no package information is available from the archive or codebase. |
Package[] getPackages ()
获取当前已知的调用者的ClassLoader
实例的所有包。 这些包对应于通过加载或访问按名称的类ClassLoader
实例。 如果主叫方ClassLoader
实例引导ClassLoader
实例,它可表示为null
在一些实现,只包对应于由引导类加载ClassLoader
实例将被返回。
Returns | |
---|---|
Package[] |
a new array of packages known to the callers ClassLoader instance. An zero length array is returned if none are known. |
String getSpecificationTitle ()
返回这个包实现的规范的标题。
Returns | |
---|---|
String |
the specification title, null is returned if it is not known. |
String getSpecificationVendor ()
返回拥有并维护实现此包的类的规范的组织,供应商或公司的名称。
Returns | |
---|---|
String |
the specification vendor, null is returned if it is not known. |
String getSpecificationVersion ()
返回此包实现的规范的版本号。 该版本字符串必须是以“。”分隔的非负整数的十进制整数序列,并且可能具有前导零。 比较版本字符串时,比较最重要的数字。
Returns | |
---|---|
String |
the specification version, null is returned if it is not known. |
int hashCode ()
返回从包名称中计算出来的哈希码。
Returns | |
---|---|
int |
the hash code computed from the package name. |
boolean isCompatibleWith (String desired)
将此软件包的规格版本与所需版本进行比较。 如果此软件包规范版本号大于或等于所需的版本号,则返回true。
通过顺序比较所需字符串和规格字符串的相应组件来比较版本号。 每个组件都被转换为一个十进制整数并对值进行比较。 如果规格值大于期望值,则返回true。 如果该值更少,则返回false。 如果这些值相等,则跳过周期并比较下一对组件。
Parameters | |
---|---|
desired |
String : the version string of the desired version. |
Returns | |
---|---|
boolean |
true if this package's version number is greater than or equal to the desired version number |
Throws | |
---|---|
NumberFormatException |
if the desired or current version is not of the correct dotted form. |
boolean isSealed (URL url)
如果此包与指定的代码源URL相关,则返回true。
Parameters | |
---|---|
url |
URL : the code source url |
Returns | |
---|---|
boolean |
true if this package is sealed with respect to url |
boolean isSealed ()
如果此包已密封,则返回true。
Returns | |
---|---|
boolean |
true if the package is sealed, false otherwise |
String toString ()
返回此Package的字符串表示形式。 它的值是字符串“包”和包名称。 如果定义了包标题,则会附加它。 如果软件包版本已定义,则附加。
Returns | |
---|---|
String |
the string representation of the package. |