Класс Package
- java.lang.Object
-
- java.lang.Package
- Все реализованные интерфейсы:
- AnnotatedElement
public class Package extends Object implements AnnotatedElement
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. Статические методы позволяют найти пакет по имени или получить набор всех пакетов, известных текущему загрузчику классов.
- См. также:
ClassLoader.definePackage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.net.URL)
Методы
| Модификатор и тип | Метод и описание |
|---|---|
<A extends Annotation> |
getAnnotation(Class<A> annotationClass) Возвращает аннотацию элемента для указанного типа, если такая аннотация есть, в противном случае null. |
Annotation[] |
getAnnotations() Возвращает аннотации, присутствующие на этом элементе. |
<A extends Annotation> |
getAnnotationsByType(Class<A> annotationClass) Возвращает аннотации, ассоциированные с этим элементом. |
<A extends Annotation> |
getDeclaredAnnotation(Class<A> annotationClass) Возвращает аннотацию элемента для указанного типа, если такая аннотация непосредственно присутствует, в противном случае null. |
Annotation[] |
getDeclaredAnnotations() Возвращает аннотации, непосредственно присутствующие на этом элементе. |
<A extends Annotation> |
getDeclaredAnnotationsByType(Class<A> annotationClass) Возвращает аннотацию(и) элемента для указанного типа, если такие аннотации непосредственно присутствуют или косвенно присутствуют. |
String |
getImplementationTitle() Возвращает заголовок этого пакета. |
String |
getImplementationVendor() Возвращает имя организации, поставщика или компании, предоставившей эту реализацию. |
String |
getImplementationVersion() Возвращает версию этой реализации. |
String |
getName() Возвращает имя этого пакета. |
static Package |
getPackage(String name) Ищет пакет по имени в экземпляре |
static Package[] |
getPackages() Получает все пакеты, известные в данный момент для экземпляра |
String |
getSpecificationTitle() Возвращает заголовок спецификации, которую реализует этот пакет. |
String |
getSpecificationVendor() Возвращает имя организации, поставщика или компании, владеющей и поддерживающей спецификацию классов, которые реализуют этот пакет. |
String |
getSpecificationVersion() Возвращает номер версии спецификации, которую реализует этот пакет. |
int |
hashCode() Возвращает хэш-код, вычисленный из имени пакета. |
boolean |
isAnnotationPresent(Class<? extends Annotation> annotationClass) Возвращает true, если для указанного типа аннотация есть на этом элементе, в противном случае false. |
boolean |
isCompatibleWith(String desired) Сравнивает версию спецификации этого пакета с желаемой версией. |
boolean |
isSealed() Возвращает true, если этот пакет запечатан. |
boolean |
isSealed(URL url) Возвращает true, если этот пакет запечатан относительно указанного URL-адреса кода источника. |
String |
toString() Возвращает строковое представление этого пакета. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait Методы
getName
public String getName()
Возвращает имя этого пакета.
- Возвращает:
- Полное квалифицированное имя этого пакета, как определено в разделе 6.5.3 спецификации языка Java™, например,
java.lang
getSpecificationTitle
public String getSpecificationTitle()
Возвращает заголовок спецификации, реализуемой этим пакетом.
- Возвращает:
- заголовок спецификации, null возвращается, если он неизвестен.
getSpecificationVersion
public String getSpecificationVersion()
Возвращает номер версии спецификации, реализуемой этим пакетом. Эта строка версии должна быть последовательностью неотрицательных десятичных целых чисел, разделенных символами ".", и может содержать ведущие нули. При сравнении строк версии сначала сравниваются наиболее значимые числа.
- Возвращает:
- версия спецификации, null возвращается, если она неизвестна.
getSpecificationVendor
public String getSpecificationVendor()
Возвращает имя организации, поставщика или компании, которая владеет и поддерживает спецификацию классов, реализующих этот пакет.
- Возвращает:
- поставщик спецификации, null возвращается, если он неизвестен.
getImplementationTitle
public String getImplementationTitle()
Возвращает заголовок этого пакета.
- Возвращает:
- заголовок реализации, null возвращается, если он неизвестен.
getImplementationVersion
public String getImplementationVersion()
Возвращает версию этой реализации. Она состоит из любой строки, назначенной поставщиком этой реализации, и не имеет какой-либо конкретной синтаксической спецификации или ожидаемой Java-средой выполнения. Она может быть сравнена на равенство с другими строками версий пакетов, используемыми этим поставщиком для этого пакета.
- Возвращает:
- версия реализации, null возвращается, если она неизвестна.
getImplementationVendor
public String getImplementationVendor()
Возвращает имя организации, поставщика или компании, предоставившей эту реализацию.
- Возвращает:
- поставщик, реализовавший этот пакет.
isSealed
public boolean isSealed()
Возвращает true, если этот пакет запечатан.
- Возвращает:
- true, если пакет запечатан, false в противном случае
isSealed
public boolean isSealed(URL url)
Возвращает true, если этот пакет запечатан относительно указанного URL-адреса источника кода.
- Параметры:
-
url- URL-адрес источника кода - Возвращает:
- true, если этот пакет запечатан относительно url
isCompatibleWith
public boolean isCompatibleWith(String desired)
throws NumberFormatException Сравнивает версию спецификации этого пакета с желаемой версией. Возвращает true, если номер версии спецификации этого пакета больше или равен номеру желаемой версии.
Номера версий сравниваются путем последовательного сравнения соответствующих компонентов строк желаемой и спецификации. Каждый компонент преобразуется в десятичное целое число и сравнивается. Если значение спецификации больше значения желаемой, возвращается true. Если значение меньше, возвращается false. Если значения равны, период пропускается, и сравнивается следующая пара компонентов.
- Параметры:
-
desired- строка версии желаемой версии. - Возвращает:
- true, если номер версии этого пакета больше или равен номеру желаемой версии
- Выбрасывает:
-
NumberFormatException- если желаемая или текущая версия не имеют правильного формата с точками.
getPackage
public static Package getPackage(String name)
Находит пакет по имени в экземпляре вызывающего ClassLoader . Экземпляр вызывающего ClassLoader используется для поиска экземпляра пакета, соответствующего названному классу. Если экземпляр вызывающего ClassLoader равен null, то ищется в наборе пакетов, загруженных системным ClassLoader экземпляром.
У пакетов есть атрибуты для версий и спецификаций только в том случае, если загрузчик классов создал экземпляр пакета с соответствующими атрибутами. Как правило, эти атрибуты определяются в манифестах, которые сопровождают классы.
- Параметры:
-
name- имя пакета, например, java.lang. - Возвращает:
- пакет с запрошенным именем. Может быть null, если информация о пакете недоступна из архива или кодовой базы.
getPackages
public static Package[] getPackages()
Получить все известные пакеты для экземпляра вызывающего ClassLoader . Эти пакеты соответствуют классам, загруженным через или доступным по имени этому экземпляру ClassLoader . Если экземпляр вызывающего ClassLoader является загрузчиком Bootstrap ClassLoader (который может быть представлен как null в некоторых реализациях), будут возвращены только пакеты, соответствующие классам, загруженным этим Bootstrap ClassLoader экземпляром.
- Возвращает:
- новый массив пакетов, известных экземпляру вызывающего
ClassLoader. Возвращается массив нулевой длины, если пакеты неизвестны.
hashCode
public int hashCode()
Возвращает хэш-код, вычисленный по имени пакета.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- хэш-код, вычисленный по имени пакета.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
public String toString()
Возвращает строковое представление этого пакета. Его значение — строка "package " и имя пакета. Если определён заголовок пакета, он добавляется. Если определена версия пакета, она также добавляется.
getAnnotation
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
Описание скопировано из интерфейса: AnnotatedElement
Возвращает аннотацию этого элемента для указанного типа, если такая аннотация присутствует, в противном случае null.
- Задано в:
-
getAnnotationв интерфейсеAnnotatedElement - Параметры типа:
-
A- тип аннотации, для запроса и возврата, если она присутствует - Параметры:
-
annotationClass- объект Class, соответствующий типу аннотации - Возвращает:
- аннотацию этого элемента для указанного типа аннотации, если она присутствует на этом элементе, иначе null
- Выбрасывает:
-
NullPointerException- если предоставленный класс аннотации равен null - С момента:
- 1.5
isAnnotationPresent
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
Возвращает true, если аннотация для указанного типа присутствует на этом элементе, в противном случае false. Этот метод предназначен в основном для удобного доступа к аннотациям-маркерам.
Логическое значение, возвращаемое этим методом, эквивалентно: getAnnotation(annotationClass) != null
Текст тела метода по умолчанию должен быть указанным выше кодом.
- Задано в:
-
isAnnotationPresentв интерфейсеAnnotatedElement - Параметры:
-
annotationClass- объект Class, соответствующий типу аннотации - Возвращает:
- true, если аннотация для указанного типа аннотации присутствует на этом элементе, иначе false
- Выбрасывает:
-
NullPointerException- если предоставленный класс аннотации равен null - С момента:
- 1.5
getAnnotationsByType
public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)
Описание скопировано из интерфейса: AnnotatedElement
Возвращает аннотации, которые связаны с этим элементом. Если аннотаций, связанных с этим элементом, нет, возвращаемое значение — массив длиной 0. Разница между этим методом и AnnotatedElement.getAnnotation(Class) заключается в том, что этот метод определяет, является ли его аргумент повторяемым типом аннотации (JLS 9.6), и в случае положительного ответа пытается найти одну или несколько аннотаций этого типа, «просматривая» контейнерную аннотацию. Вызывающий метод свободен изменять возвращаемый массив; это не повлияет на массивы, возвращаемые другим вызывающим сторонам.
- Задано в:
-
getAnnotationsByTypeв интерфейсеAnnotatedElement - Параметры типа:
-
A- тип аннотации, для запроса и возврата, если она присутствует - Параметры:
-
annotationClass- объект Class, соответствующий типу аннотации - Возвращает:
- все аннотации этого элемента для указанного типа аннотации, если они связаны с этим элементом, иначе массив длиной ноль
- Выбрасывает:
-
NullPointerException- если предоставленный класс аннотации равен null - С момента:
- 1.8
getAnnotations
public Annotation[] getAnnotations()
Описание скопировано из интерфейса: AnnotatedElement
Возвращает аннотации, которые присутствуют на этом элементе. Если на этом элементе нет аннотаций, возвращаемое значение — массив длиной 0. Вызывающий метод свободен изменять возвращаемый массив; это не повлияет на массивы, возвращаемые другим вызывающим сторонам.
- Задано в:
-
getAnnotationsв интерфейсеAnnotatedElement - Возвращает:
- аннотации, присутствующие на этом элементе
- С момента:
- 1.5
getDeclaredAnnotation
public <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)
Описание скопировано из интерфейса: AnnotatedElement
Возвращает аннотацию этого элемента для указанного типа, если такая аннотация непосредственно присутствует, в противном случае null. Этот метод игнорирует унаследованные аннотации. (Возвращает null, если аннотации напрямую не присутствуют на этом элементе.)
- Задано в:
-
getDeclaredAnnotationв интерфейсеAnnotatedElement - Параметры типа:
-
A- тип аннотации, для запроса и возврата, если она непосредственно присутствует - Параметры:
-
annotationClass- объект Class, соответствующий типу аннотации - Возвращает:
- аннотацию этого элемента для указанного типа аннотации, если она непосредственно присутствует на этом элементе, иначе null
- Выбрасывает:
-
NullPointerException- если предоставленный класс аннотации равен null - С момента:
- 1.8
getDeclaredAnnotationsByType
public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)
Описание скопировано из интерфейса: AnnotatedElement
Возвращает аннотации(и) этого элемента для указанного типа, если такие аннотации присутствуют непосредственно или косвенно. Этот метод игнорирует унаследованные аннотации. Если на этом элементе нет указанных аннотаций, непосредственно или косвенно, возвращаемое значение — массив длиной 0. Различие между этим методом и AnnotatedElement.getDeclaredAnnotation(Class) заключается в том, что этот метод определяет, является ли его аргумент повторяемым типом аннотации (JLS 9.6), и если да, то пытается найти одну или несколько аннотаций этого типа, «просматривая» контейнерную аннотацию, если она присутствует. Вызывающий метод свободен изменять возвращаемый массив; это не повлияет на массивы, возвращаемые другим вызывающим сторонам.
- Определено в:
-
getDeclaredAnnotationsByTypeв интерфейсеAnnotatedElement - Параметры типа:
-
A- тип аннотации, для запроса и возврата, если она присутствует непосредственно или косвенно - Параметры:
-
annotationClass- объект Class, соответствующий типу аннотации - Возвращает:
- все аннотации этого элемента для указанного типа аннотации, если они присутствуют непосредственно или косвенно на этом элементе, в противном случае массив длиной ноль
- Исключения:
-
NullPointerException- если заданный класс аннотации равен null - С:
- 1.8
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()
Описание скопировано из интерфейса: AnnotatedElement
Возвращает аннотации, которые непосредственно присутствуют на этом элементе. Этот метод игнорирует унаследованные аннотации. Если на этом элементе нет аннотаций непосредственно, возвращаемое значение — массив длиной 0. Вызывающий метод свободен изменять возвращаемый массив; это не повлияет на массивы, возвращаемые другим вызывающим сторонам.
- Определено в:
-
getDeclaredAnnotationsв интерфейсеAnnotatedElement - Возвращает:
- аннотации, непосредственно присутствующие на этом элементе
- С:
- 1.5
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.