java.lang.Object java.lang.Package
public class Package
Package
对象包含有关 Java 包的实现和规范的版本信息。通过用于加载类的
实例,可以获取并获得此版本信息。通常,此信息存储在与类一起分发的清单中。 ClassLoader
组成包的类集可以实现一个特定规范,如此一来,就可以通过规范标题、版本号和供应商字符串来标识该规范。应用程序可以询问包是否与特定版本兼容,有关详细信息,请参阅
方法。 isCompatibleWith
规范的版本号使用了一个由句点 "." 分隔的十进制正整数组成的语法,例如 "2.0" 或 "1.2.3.4.5.6.7"。这允许使用可扩展的编号来表示主版本号、次版本号、缩微版本号,等等。版本规范是由下列形式的语法描述的:
- SpecificationVersion:
- Digits RefinedVersionopt
- RefinedVersion:
.
Digits.
Digits RefinedVersion- Digits:
- Digit
- Digits
- Digit:
Character.isDigit(char)
会对其返回true
的任何字符,如 0、1、2 等等。
实现标题、版本和供应商字符串共同标识了一个实现,并且可以很方便地使用它们来支持出现问题时所涉及的包的准确报告。三个实现字符串内容都是特定于供应商的。实现版本字符串没有特定的语法,并且应该只在为了使它们等同于所需的版本标识符时对它们进行比较。
在每一个 ClassLoader
实例中,相同 java 包中的所有类都有相同的 Package 对象。静态方法允许通过名称或当前类加载器已知的所有包的集合来找到包。
方法摘要 | ||
---|---|---|
|
getAnnotation(Class<A> annotationClass) 如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。 |
|
Annotation[] |
getAnnotations() 返回此元素上存在的所有注释。 |
|
Annotation[] |
getDeclaredAnnotations() 返回直接存在于此元素上的所有注释。 |
|
String |
getImplementationTitle() 返回此包的标题。 |
|
String |
getImplementationVendor() 返回提供该实现的组织、供应商或公司的名称。 |
|
String |
getImplementationVersion() 返回该实现的版本。 |
|
String |
getName() 返回此包的名称。 |
|
static Package |
getPackage(String name) 通过调用方的 ClassLoader 实例中的名称找到一个包。 |
|
static Package[] |
getPackages() 获得调用方的 ClassLoader 实例当前已知的所有包。 |
|
String |
getSpecificationTitle() 返回此包实现的规范标题。 |
|
String |
getSpecificationVendor() 返回拥有并维护实现此包的类规范的组织、供应商或公司的名称。 |
|
String |
getSpecificationVersion() 返回此包实现的规范的版本号。 |
|
int |
hashCode() 返回从包名称计算的哈希码。 |
|
boolean |
isAnnotationPresent(Class<? extends Annotation> annotationClass) 如果指定类型的注释存在于此元素上,则返回 true,否则返回 false。 |
|
boolean |
isCompatibleWith(String desired) 比较此包的规范版本和所需版本。 |
|
boolean |
isSealed() 如果此包是密封的,则返回 ture。 |
|
boolean |
isSealed(URL url) 如果此包对于指定的代码源 url 是密封的,则返回 ture。 |
|
String |
toString() 返回此 Package 的字符串表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait |
方法详细信息 |
---|
public String getName()
public String getSpecificationTitle()
public String getSpecificationVersion()
public String getSpecificationVendor()
public String getImplementationTitle()
public String getImplementationVersion()
public String getImplementationVendor()
public boolean isSealed()
public boolean isSealed(URL url)
url
- 代码源 url
public boolean isCompatibleWith(String desired) throws NumberFormatException
通过按顺序比较所需字符串和规范字符串的对应组件,对版本号进行比较。每个组件都被转换为一个十进制整数和比较的值。如果规范值大于所需值,则返回 true。如果小于所需值,则返回 false。如果两个值相等,则跳过这一比较周期,比较下一对组件。
desired
- 所需版本的版本字符串。
NumberFormatException
- 如果所需版本或当前版本的点形式不正确。
public static Package getPackage(String name)
ClassLoader
实例中的名称找到一个包。调用方的
ClassLoader
实例用于找到对应于指定类的包实例。如果调用方的
ClassLoader
实例为 null,则搜索系统的
ClassLoader
实例加载的包集合,以找到指定包。
只有类加载器创建了具有适当属性的包实例,包中才会有规范和版本属性。通常,这些属性定义在随类一起提供的清单中。
name
- 包名称,例如,java.lang。
public static Package[] getPackages()
ClassLoader
实例当前已知的所有包。这些包对应于通过
ClassLoader
实例中的名称加载或访问的类。如果调用方的
ClassLoader
实例是引导程序的
ClassLoader
实例(它在一些实现中可能用
null
表示),则只返回通过引导程序的
ClassLoader
实例加载的类所对应的包。
ClassLoader
实例已知的包的新数组。如果没有已知的包,则返回零长度的数组。
public int hashCode()
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
AnnotatedElement
复制的描述
AnnotatedElement
中的
getAnnotation
annotationClass
- 对应于注释类型的 Class 对象
NullPointerException
- 如果给定的注释类为 null
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
AnnotatedElement
复制的描述
AnnotatedElement
中的
isAnnotationPresent
annotationClass
- 对应于注释类型的 Class 对象
NullPointerException
- 如果给定的注释类为 null
public Annotation[] getAnnotations()
AnnotatedElement
复制的描述
AnnotatedElement
中的
getAnnotations
public Annotation[] getDeclaredAnnotations()
AnnotatedElement
复制的描述
AnnotatedElement
中的
getDeclaredAnnotations