Интерфейс Элемент
- Все суперинтерфейсы:
- AnnotatedConstruct
- Все известные подинтерфейсы:
- ExecutableElement, PackageElement, Parameterizable, QualifiedNameable, TypeElement, TypeParameterElement, VariableElement
public interface Element extends AnnotatedConstruct
Представляет элемент программы, такой как пакет, класс или метод. Каждый элемент представляет статическую конструкцию языка (а не, например, конструкцию среды выполнения виртуальной машины).
Элементы должны сравниваться с помощью метода equals(Object). Нет гарантии, что любой конкретный элемент всегда будет представлен одним и тем же объектом.
Для реализации операций, основанных на классе объекта Element, используйте либо посетителя visitor, либо результат метода getKind(). Использование instanceof не обязательно является надёжным способом определения эффективного класса объекта в этой модели иерархии, так как реализация может выбрать иметь один объект, реализующий несколько Element подинтерфейсов.
- С момента:
- 1.6
- См. также:
-
Elements,TypeMirror
Методы
| Модификатор и Тип | Метод и описание |
|---|---|
<R,P> R |
accept(ElementVisitor<R,P> v,
P p) Применяет посетителя к этому элементу. |
TypeMirror |
asType() Возвращает тип, определённый этим элементом. |
boolean |
equals(Object obj) Возвращает |
<A extends Annotation> |
getAnnotation(Class<A> annotationType) Возвращает аннотацию этого конструкта указанного типа, если такая аннотация присутствует, иначе |
List<? extends AnnotationMirror> |
getAnnotationMirrors() Возвращает аннотации, которые непосредственно присутствуют на этом конструкте. |
List<? extends Element> |
getEnclosedElements() Возвращает элементы, которые, грубо говоря, непосредственно содержатся этим элементом. |
Element |
getEnclosingElement() Возвращает самый внутренний элемент, в котором этот элемент, грубо говоря, заключён. |
ElementKind |
getKind() Возвращает |
Set<Modifier> |
getModifiers() Возвращает модификаторы этого элемента, исключая аннотации. |
Name |
getSimpleName() Возвращает простое (без квалификатора) имя этого элемента. |
int |
hashCode() Соблюдает общий контракт |
Методы, унаследованные от интерфейса javax.lang.model.AnnotatedConstruct
getAnnotationsByType Методы
asType
TypeMirror asType()
Возвращает тип, определённый этим элементом.
Общий элемент определяет семейство типов, а не только один. Если это общий элемент, возвращается прототипный тип. Это вызов элемента на переменных типа, соответствующих его собственным формальным параметрам типа. Например, для общего класса элемента C<N extends Number>, возвращается параметризованный тип C<N>. Интерфейс-утилита Types имеет более общие методы для получения полного диапазона типов, определённых элементом.
- Возвращает:
- тип, определённый этим элементом
- См. также:
Types
getKind
ElementKind getKind()
Возвращает kind этого элемента.
- Возвращает:
- вид этого элемента
getModifiers
Set<Modifier> getModifiers()
Возвращает модификаторы этого элемента, исключая аннотации. Неявные модификаторы, такие как public и static модификаторы членов интерфейса, включаются.
- Возвращает:
- модификаторы элемента или пустой набор, если их нет
getSimpleName
Name getSimpleName()
Возвращает простое (неквалифицированное) имя этого элемента. Имя общего типа не включает никаких ссылок на его формальные параметры типа. Например, простое имя элемента типа java.util.Set<E> равно "Set". Если этот элемент представляет собой безымянный пакет, возвращается пустое имя. Если он представляет собой конструктор, возвращается имя «<init>». Если он представляет собой статический инициализатор, возвращается имя «<clinit>». Если он представляет собой анонимный класс или инициализатор экземпляра, возвращается пустое имя.
- Возвращает:
- простое имя этого элемента
- См. также:
-
PackageElement.getSimpleName(),ExecutableElement.getSimpleName(),TypeElement.getSimpleName(),VariableElement.getSimpleName()
getEnclosingElement
Element getEnclosingElement()
Возвращает самый внутренний элемент, в котором этот элемент, грубо говоря, заключён.
- Если этот элемент такой, объявление которого лексически заключено непосредственно внутри объявления другого элемента, возвращается этот другой элемент.
- Если это тип верхнего уровня, возвращается его пакет.
- Если это пакет, возвращается
null. - Если это параметр типа, возвращается общий элемент параметра типа.
- Если это параметр метода или конструктора, возвращается исполняемый элемент, который объявляет параметр.
- Возвращает:
- вложенный элемент или
null, если его нет - См. также:
Elements.getPackageOf(javax.lang.model.element.Element)
getEnclosedElements
List<? extends Element> getEnclosedElements()
Возвращает элементы, которые, грубо говоря, непосредственно заключены в этот элемент. Класс или интерфейс считается заключающим поля, методы, конструкторы и типы-члены, которые он непосредственно объявляет. Пакет заключает классы и интерфейсы верхнего уровня внутри него, но не считается заключающим подпакеты. Другие виды элементов в настоящее время не считаются заключающими какие-либо элементы; однако это может измениться по мере развития этой API или языка программирования.
Обратите внимание, что элементы определённых видов можно изолировать с помощью методов в ElementFilter.
- Возвращает:
- вложенные элементы или пустой список, если их нет
- См. также:
-
PackageElement.getEnclosedElements(),TypeElement.getEnclosedElements(),Elements.getAllMembers(javax.lang.model.element.TypeElement)
equals
boolean equals(Object obj)
Возвращает true , если аргумент представляет тот же элемент, что и this, или false в противном случае.
Обратите внимание, что идентичность элемента включает неявное состояние, не доступное напрямую из методов элемента, включая состояние о наличии несвязанных типов. Объекты элемента, созданные различными реализациями этих интерфейсов, не должны ожидаться равными, даже если «одинаковый» элемент моделируется; это аналогично неравенству объектов Class для одного и того же файла класса, загруженного через разные загрузчики классов.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект, подлежащий сравнению с этим элементом - Возвращает:
-
true, если указанный объект представляет тот же элемент, что и этот - См. также:
-
Object.hashCode(),HashMap
hashCode
int hashCode()
Следует общему соглашению Object.hashCode.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
equals(java.lang.Object)
getAnnotationMirrors
List<? extends AnnotationMirror> getAnnotationMirrors()
Возвращает аннотации, которые непосредственно присутствуют на этом конструкте.
Чтобы получить также унаследованные аннотации, используйте getAllAnnotationMirrors.
- Определено в:
-
getAnnotationMirrorsв интерфейсеAnnotatedConstruct - Возвращает:
- аннотации, непосредственно присутствующие на этом конструкте; пустой список, если их нет
- С момента:
- 1.6
getAnnotation
<A extends Annotation> A getAnnotation(Class<A> annotationType)
Возвращает аннотацию этого конструкта указанного типа, если такая аннотация присутствует, иначе null.
Аннотация, возвращаемая этим методом, может содержать элемент, значение которого имеет тип Class. Это значение не может быть возвращено напрямую: информация, необходимая для поиска и загрузки класса (например, загрузчик классов, который нужно использовать), недоступна, и класс может быть вообще не загружаемым. Попытка прочитать объект Class путём вызова соответствующего метода на возвращённой аннотации приведёт к MirroredTypeException, из которого соответствующий TypeMirror может быть извлечён. Аналогично, попытка прочитать элемент со значением Class[] приведёт к MirroredTypesException.
Примечание: Этот метод отличается от других методов в этом и связанных интерфейсах. Он работает с информацией о времени выполнения – представлениями типов аннотаций, в настоящее время загруженными в виртуальную машину – а не с представлениями, определёнными и используемыми во всех этих интерфейсах. Вследствие этого вызов методов на объекте возвращаемой аннотации может вызвать многие исключения, которые могут быть вызваны при вызове методов на объекте аннотации, возвращаемом основной рефлексией. Этот метод предназначен для вызывающих сторон, написанных для работы с известным, фиксированным набором типов аннотаций.
- Определено в:
-
getAnnotationв интерфейсеAnnotatedConstruct - Параметры типа:
-
A- тип аннотации - Параметры:
-
annotationType- объектClass, соответствующий типу аннотации - Возвращает:
- аннотация этого конструкта для указанного типа аннотации, если присутствует, иначе
null - С момента:
- 1.6
- См. также:
-
AnnotatedConstruct.getAnnotationMirrors(),AnnotatedElement.getAnnotation(java.lang.Class<T>),EnumConstantNotPresentException,AnnotationTypeMismatchException,IncompleteAnnotationException,MirroredTypeException,MirroredTypesException
accept
<R,P> R accept(ElementVisitor<R,P> v,
P p) Применяет посетителя к этому элементу.
- Параметры типа:
-
R- тип возвращаемого значения методов посетителя -
P- тип дополнительного параметра методов посетителя - Параметры:
-
v- посетитель, работающий с этим элементом -
p- дополнительный параметр посетителя - Возвращает:
- результат, заданный посетителем
© 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.