Класс Field
- Все реализуемые интерфейсы:
AnnotatedElement, Member
public final class Field extends AccessibleObject implements Member
Field предоставляет информацию о единственном поле класса или интерфейса и динамический доступ к нему. Отражённое поле может быть полем класса (статическим) или полем экземпляра. Объект Field допускает расширяющие преобразования при чтении или записи, но выбрасывает IllegalArgumentException, если при этом потребовалось бы сужающее преобразование.
- Начиная с:
- 1.1
- См. также:
Краткое описание полей
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Set |
accessFlags() |
Возвращает неизменяемый набор флагов доступа для этого поля, который может быть пустым. |
boolean |
equals |
Сравнивает этот объект Field с указанным объектом. |
Object |
get |
Возвращает значение поля, представленного этим объектом Field, для указанного объекта. |
AnnotatedType |
getAnnotatedType() |
Возвращает объект AnnotatedType, представляющий использование типа для указания объявленного типа поля, представленного этим Field. |
<T extends Annotation> |
getAnnotation |
Возвращает аннотацию этого элемента для указанного типа, если такая аннотация присутствует, иначе возвращает null. |
<T extends Annotation> |
getAnnotationsByType |
Возвращает аннотации, связанные с этим элементом. |
boolean |
getBoolean |
Получает значение статического поля или поля экземпляра типа boolean. |
byte |
getByte |
Получает значение статического поля или поля экземпляра типа byte. |
char |
getChar |
Получает значение статического поля или поля экземпляра типа char либо другого примитивного типа, который можно преобразовать к типу char с помощью расширяющего преобразования. |
Class |
getDeclaringClass() |
Возвращает объект Class, представляющий класс или интерфейс, объявляющий поле, представленное этим объектом Field. |
double |
getDouble |
Получает значение статического поля или поля экземпляра типа double либо другого примитивного типа, который можно преобразовать к типу double с помощью расширяющего преобразования. |
float |
getFloat |
Получает значение статического поля или поля экземпляра типа float либо другого примитивного типа, который можно преобразовать к типу float с помощью расширяющего преобразования. |
Type |
getGenericType() |
Возвращает объект Type, представляющий объявленный тип поля, представленного этим объектом Field. |
int |
getInt |
Получает значение статического поля или поля экземпляра типа int либо другого примитивного типа, который можно преобразовать к типу int с помощью расширяющего преобразования. |
long |
getLong |
Получает значение статического поля или поля экземпляра типа long либо другого примитивного типа, который можно преобразовать к типу long с помощью расширяющего преобразования. |
int |
getModifiers() |
Возвращает модификаторы языка Java для поля, представленного этим объектом Field, в виде целого числа. |
String |
getName() |
Возвращает имя поля, представленного этим объектом Field. |
short |
getShort |
Получает значение статического поля или поля экземпляра типа short либо другого примитивного типа, который можно преобразовать к типу short с помощью расширяющего преобразования. |
Class |
getType() |
Возвращает объект Class, определяющий объявленный тип поля, представленного этим объектом Field. |
int |
hashCode() |
Возвращает хеш-код этого объекта Field. |
boolean |
isEnumConstant() |
Возвращает true, если это поле представляет элемент перечислимого класса; в противном случае возвращает false. |
boolean |
isSynthetic() |
Возвращает true, если это поле является синтетическим; в противном случае возвращает false. |
void |
set |
Устанавливает для поля, представленного этим объектом Field, новое указанное значение в указанном объекте. |
void |
setAccessible |
Устанавливает для отражённого объекта флаг accessible в указанное логическое значение. |
void |
setBoolean |
Устанавливает значение поля в указанном объекте как boolean. |
void |
setByte |
Устанавливает значение поля в указанном объекте как byte. |
void |
setChar |
Устанавливает значение поля в указанном объекте как char. |
void |
setDouble |
Устанавливает значение поля в указанном объекте как double. |
void |
setFloat |
Устанавливает значение поля в указанном объекте как float. |
void |
setInt |
Устанавливает значение поля в указанном объекте как int. |
void |
setLong |
Устанавливает значение поля в указанном объекте как long. |
void |
setShort |
Устанавливает значение поля в указанном объекте как short. |
String |
toGenericString() |
Возвращает строку с описанием этого объекта Field, включая его обобщённый тип. |
String |
toString() |
Возвращает строку с описанием этого объекта Field. |
Методы, объявленные в классе AccessibleObject
canAccess, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotations, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, trySetAccessible | Модификатор и тип | Метод | Описание |
|---|---|---|
final boolean |
canAccess |
Проверяет, может ли вызывающий код получить доступ к этому отражённому объекту. |
Annotation[] |
getAnnotations() |
Возвращает аннотации, присутствующие у этого элемента. |
<T extends Annotation> |
getDeclaredAnnotation |
Возвращает аннотацию этого элемента для указанного типа, если такая аннотация присутствует непосредственно, иначе возвращает null. |
Annotation[] |
getDeclaredAnnotations() |
Возвращает аннотации, непосредственно присутствующие у этого элемента. |
<T extends Annotation> |
getDeclaredAnnotationsByType |
Возвращает аннотацию (аннотации) этого элемента для указанного типа, если такие аннотации присутствуют непосредственно или присутствуют косвенно. |
boolean |
isAccessible() |
Устарело. Этот метод устарел, поскольку его имя подразумевает проверку доступности отражённого объекта, хотя на самом деле оно указывает, отключены ли проверки контроля доступа языка Java. |
boolean |
isAnnotationPresent |
Возвращает true, если аннотация указанного типа присутствует у этого элемента, иначе false. |
static void |
setAccessible |
Вспомогательный метод для установки флага accessible для массива отражённых объектов. |
final boolean |
trySetAccessible() |
Устанавливает для отражённого объекта флаг accessible в значение true, если это возможно. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API планируется удалить в будущей версии. Финализация устарела и планируется к удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание методов
setAccessible
public void setAccessible(boolean flag)
accessible для этого отражённого объекта в указанное логическое значение. Значение true означает, что отражённый объект должен подавлять проверки контроля доступа языка Java при его использовании. Значение false означает, что отражённый объект должен выполнять проверки контроля доступа языка Java при его использовании с учётом варианта, указанного в описании класса. Этот метод может использоваться вызывающим кодом в классе C для предоставления доступа к member класса declaring class D, если выполняется любое из следующих условий:
-
CиDнаходятся в одном модуле. - Элемент является
public, аDявляетсяpublicв пакете, который модуль, содержащийD,exportsкак минимум модулю, содержащемуC. - Элемент является
protectedstatic,Dявляетсяpublicв пакете, который модуль, содержащийD, экспортирует как минимум модулю, содержащемуC, аCявляется подклассомD. -
Dнаходится в пакете, который модуль, содержащийD,opensкак минимум модулю, содержащемуC. Все пакеты в безымянных и открытых модулях открыты для всех модулей, поэтому этот метод всегда выполняется успешно, когдаDнаходится в безымянном или открытом модуле.
Этот метод может использоваться кодом JNI без вызывающего класса в стеке для предоставления доступа к member класса declaring class D тогда и только тогда, когда:
- Элемент является
public, аDявляетсяpublicв пакете, который модуль, содержащийD,exportsбезусловно.
Этот метод нельзя использовать для предоставления доступа к закрытым элементам, элементам с доступом по умолчанию (на уровне пакета), защищённым нестатическим элементам или защищённым конструкторам, если объявляющий класс находится в модуле, отличном от модуля вызывающего кода, а пакет, содержащий объявляющий класс, не открыт для модуля вызывающего кода.
Если этот отражённый объект представляет нефинальное поле и этот метод используется для предоставления доступа, разрешается как чтение, так и запись поля.
Если этот отражённый объект представляет немодифицируемое финальное поле, предоставление доступа разрешает только чтение. Любая попытка установить значение поля приводит к выбросу
IllegalAccessException. Следующие поля являются немодифицируемыми:
- статические финальные поля, объявленные в любом классе или интерфейсе
- финальные поля, объявленные в записи
- финальные поля, объявленные в скрытом классе
Если этот отражённый объект представляет нестатическое финальное поле класса, не являющегося классом записи или скрытым классом, предоставление доступа разрешает чтение. Проверка возможности записи выполняется при попытке установить значение поля.
- Переопределяет:
-
setAccessibleв классеAccessibleObject - Параметры:
-
flag- новое значение флагаaccessible - Исключения:
-
InaccessibleObjectException- если невозможно предоставить доступ - Внешние спецификации
- См. также:
getDeclaringClass
public Class<?> getDeclaringClass()
Class, представляющий класс или интерфейс, в котором объявлено поле, представленное этим объектом Field.- Указан в:
-
getDeclaringClassв интерфейсеMember - Возвращает:
- объект, представляющий класс, объявляющий базовый элемент
getName
getModifiers
public int getModifiers()
Field, в виде целого числа. Для декодирования модификаторов следует использовать класс Modifier.- Указан в:
-
getModifiersв интерфейсеMember - Возвращает:
- модификаторы языка Java для базового элемента
- См. Спецификацию языка Java:
- 8.3 Объявления полей
9.3 Объявления полей (констант)
- См. также:
accessFlags
public Set<AccessFlag> accessFlags()
- Указан в:
-
accessFlagsв интерфейсеMember - Возвращает:
- возможно пустой неизменяемый набор флагов доступа для этого поля
- См. Спецификацию виртуальной машины Java:
- 4.5 Поля
- Появился в версии:
- 20
- См. также:
isEnumConstant
public boolean isEnumConstant()
true, если это поле представляет элемент перечислимого класса; в противном случае возвращает false.- Возвращает:
-
trueтогда и только тогда, когда это поле представляет элемент перечислимого класса. - См. Спецификацию языка Java:
- 8.9.1 Константы перечисления
- Появился в версии:
- 1.5
isSynthetic
public boolean isSynthetic()
true, если это поле является синтетическим; в противном случае возвращает false.- Указан в:
-
isSyntheticв интерфейсеMember - Возвращает:
- true тогда и только тогда, когда это поле является синтетическим согласно определению в Спецификации языка Java.
- Появился в версии:
- 1.5
- См. также:
getType
public Class<?> getType()
Class, определяющий объявленный тип поля, представленного этим объектом Field.- Возвращает:
- объект
Class, определяющий объявленный тип поля, представленного этим объектом
getGenericType
public Type getGenericType()
Type, представляющий объявленный тип поля, представленного этим объектом Field. Если объявленный тип поля является параметризованным типом, возвращаемый объект Type должен точно отражать фактические аргументы типа, использованные в исходном коде.
Если тип базового поля является переменной типа или параметризованным типом, он создаётся. В противном случае он разрешается.
- Возвращает:
- объект
Type, представляющий объявленный тип поля, представленного этим объектомField - Исключения:
-
GenericSignatureFormatError- если обобщённая сигнатура поля не соответствует формату, заданному в Спецификации виртуальной машины Java -
TypeNotPresentException- если обобщённая сигнатура типа базового поля ссылается на несуществующее объявление класса или интерфейса -
MalformedParameterizedTypeException- если обобщённая сигнатура базового поля ссылается на параметризованный тип, который невозможно создать по какой-либо причине - Появился в версии:
- 1.5
equals
public boolean equals(Object obj)
Field с указанным объектом. Возвращает true, если объекты совпадают. Два объекта Field совпадают, если они объявлены одним и тем же классом и имеют одинаковые имена и типы.hashCode
toString
public String toString()
Field. Формат: модификаторы доступа поля, если они есть, затем тип поля, пробел, полное имя класса, объявляющего поле, точка и имя поля. Например: public static final int java.lang.Thread.MIN_PRIORITY private int java.io.FileDescriptor.fd
Модификаторы располагаются в каноническом порядке, указанном в «Спецификации языка Java». Сначала идут public, protected или private, а затем остальные модификаторы в следующем порядке: static, final, transient, volatile.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строку с описанием этого объекта
Field - См. Спецификацию языка Java:
- 8.3.1 Модификаторы полей
toGenericString
public String toGenericString()
Field, включая его обобщённый тип. Формат: модификаторы доступа поля, если они есть, затем обобщённый тип поля, пробел, полное имя класса, объявляющего поле, точка и имя поля. Модификаторы располагаются в каноническом порядке, указанном в «Спецификации языка Java». Сначала идут public, protected или private, а затем остальные модификаторы в следующем порядке: static, final, transient, volatile.
- Возвращает:
- строку с описанием этого объекта
Field, включая его обобщённый тип - См. Спецификацию языка Java:
- 8.3.1 Модификаторы полей
- Появился в версии:
- 1.5
get
public Object get(Object obj) throws IllegalArgumentException, IllegalAccessException
Field, для указанного объекта. Если значение имеет примитивный тип, оно автоматически упаковывается в объект. Значение базового поля получается следующим образом:
Если базовое поле является статическим, аргумент obj игнорируется; он может быть равен null.
В противном случае базовое поле является полем экземпляра. Если указанный аргумент obj равен null, метод выбрасывает NullPointerException. Если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле, метод выбрасывает IllegalArgumentException.
Если этот объект Field обеспечивает контроль доступа языка Java, а базовое поле недоступно, метод выбрасывает IllegalAccessException. Если базовое поле является статическим, класс, объявивший поле, инициализируется, если он ещё не был инициализирован.
В противном случае значение извлекается из базового поля экземпляра или статического поля. Если поле имеет примитивный тип, перед возвратом значение упаковывается в объект; в противном случае оно возвращается без изменений.
Если поле скрыто в типе obj, его значение получается согласно приведённым выше правилам.
- Параметры:
-
obj- объект, из которого извлекается значение представленного поля - Возвращает:
- значение представленного поля объекта
obj; перед возвратом примитивные значения упаковываются в соответствующий объект - Исключения:
-
IllegalAccessException- если этот объектFieldобеспечивает контроль доступа языка Java, а базовое поле недоступно. -
IllegalArgumentException- если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией). -
NullPointerException- если указанный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно.
getBoolean
public boolean getBoolean(Object obj) throws IllegalArgumentException, IllegalAccessException
boolean.- Параметры:
-
obj- объект, из которого извлекается значениеboolean - Возвращает:
- значение поля
boolean - Исключения:
-
IllegalAccessException- если этот объектFieldобеспечивает контроль доступа языка Java, а базовое поле недоступно. -
IllegalArgumentException- если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если значение поля нельзя преобразовать к типуbooleanпутём расширяющего преобразования. -
NullPointerException- если указанный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно. - См. также:
getByte
public byte getByte(Object obj) throws IllegalArgumentException, IllegalAccessException
byte.- Параметры:
-
obj- объект, из которого извлекается значениеbyte - Возвращает:
- значение поля
byte - Исключения:
-
IllegalAccessException- если этот объектFieldобеспечивает контроль доступа языка Java, а базовое поле недоступно. -
IllegalArgumentException- если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если значение поля нельзя преобразовать к типуbyteпутём расширяющего преобразования. -
NullPointerException- если указанный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно. - См. также:
getChar
public char getChar(Object obj) throws IllegalArgumentException, IllegalAccessException
char либо другого примитивного типа, преобразуемого к типу char посредством расширяющего преобразования.- Параметры:
-
obj- объект, из которого извлекается значениеchar - Возвращает:
- значение поля, преобразованное к типу
char - Исключения:
-
IllegalAccessException- если этот объектFieldобеспечивает контроль доступа языка Java, а базовое поле недоступно. -
IllegalArgumentException- если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если значение поля нельзя преобразовать к типуcharпутём расширяющего преобразования. -
NullPointerException- если указанный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно. - См. также:
getShort
public short getShort(Object obj) throws IllegalArgumentException, IllegalAccessException
short либо другого примитивного типа, преобразуемого к типу short посредством расширяющего преобразования.- Параметры:
-
obj- объект, из которого извлекается значениеshort - Возвращает:
- значение поля, преобразованное к типу
short - Исключения:
-
IllegalAccessException- если этот объектFieldобеспечивает контроль доступа языка Java, а базовое поле недоступно. -
IllegalArgumentException- если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если значение поля нельзя преобразовать к типуshortпутём расширяющего преобразования. -
NullPointerException- если указанный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно. - См. также:
getInt
public int getInt(Object obj) throws IllegalArgumentException, IllegalAccessException
int либо другого примитивного типа, преобразуемого к типу int посредством расширяющего преобразования.- Параметры:
-
obj- объект, из которого извлекается значениеint - Возвращает:
- значение поля, преобразованное к типу
int - Исключения:
-
IllegalAccessException- если этот объектFieldобеспечивает контроль доступа языка Java, а базовое поле недоступно. -
IllegalArgumentException- если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если значение поля нельзя преобразовать к типуintпутём расширяющего преобразования. -
NullPointerException- если указанный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно. - См. также:
getLong
public long getLong(Object obj) throws IllegalArgumentException, IllegalAccessException
long либо другого примитивного типа, преобразуемого к типу long посредством расширяющего преобразования.- Параметры:
-
obj- объект, из которого извлекается значениеlong - Возвращает:
- значение поля, преобразованное к типу
long - Исключения:
-
IllegalAccessException- если этот объектFieldобеспечивает контроль доступа языка Java, а базовое поле недоступно. -
IllegalArgumentException- если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если значение поля нельзя преобразовать к типуlongпутём расширяющего преобразования. -
NullPointerException- если указанный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно. - См. также:
getFloat
public float getFloat(Object obj) throws IllegalArgumentException, IllegalAccessException
float либо другого примитивного типа, преобразуемого к типу float посредством расширяющего преобразования.- Параметры:
-
obj- объект, из которого извлекается значениеfloat - Возвращает:
- значение поля, преобразованное к типу
float - Исключения:
-
IllegalAccessException- если этот объектFieldобеспечивает контроль доступа языка Java, а базовое поле недоступно. -
IllegalArgumentException- если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если значение поля нельзя преобразовать к типуfloatпутём расширяющего преобразования. -
NullPointerException- если указанный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно. - См. также:
getDouble
public double getDouble(Object obj) throws IllegalArgumentException, IllegalAccessException
double либо другого примитивного типа, преобразуемого к типу double посредством расширяющего преобразования.- Параметры:
-
obj- объект, из которого извлекается значениеdouble - Возвращает:
- значение поля, преобразованное к типу
double - Исключения:
-
IllegalAccessException- если этот объектFieldобеспечивает контроль доступа языка Java, а базовое поле недоступно. -
IllegalArgumentException- если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если значение поля нельзя преобразовать к типуdoubleпутём расширяющего преобразования. -
NullPointerException- если указанный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, завершается неудачно. - См. также:
set
public void set(Object obj, Object value) throws IllegalArgumentException, IllegalAccessException
Field, указанное новое значение в заданном объекте. Новое значение автоматически распаковывается, если базовое поле имеет примитивный тип. Операция выполняется следующим образом:
Если базовое поле является статическим, аргумент obj игнорируется; он может быть null.
В противном случае базовое поле является полем экземпляра. Если заданный объект равен null, метод выбрасывает NullPointerException. Если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле, метод выбрасывает IllegalArgumentException.
Если этот объект Field обеспечивает соблюдение правил управления доступом языка Java и базовое поле недоступно, метод выбрасывает IllegalAccessException.
Если базовое поле является final, этот объект Field имеет доступ на запись тогда и только тогда, когда выполнены все следующие условия, где D — это объявляющий класс поля:
-
setAccessible(true)был успешно вызван для этого объектаField. - изменение final-полей разрешено для модуля вызывающего кода.
- Выполняется хотя бы одно из следующих условий:
-
Dи класс вызывающего кода находятся в одном модуле. - Поле является
public, аDнаходитсяpublicв пакете, который содержащийDмодуль экспортирует как минимум для модуля вызывающего кода. -
Dнаходится в пакете, открытом для модуля вызывающего кода.
-
-
Dне является классом-записью. -
Dне является скрытым классом. - Поле не является статическим.
Если хотя бы одно из перечисленных выше условий не выполнено, этот метод выбрасывает IllegalAccessException.
Эти условия строже условий, заданных для setAccessible(boolean) с целью подавления проверок доступа. В частности, обновление модуля для экспорта или открытия пакета не может использоваться, чтобы разрешить доступ на запись к final-полям с помощью методов set, определённых в Field. Условие (b) не выполнено, если модуль, содержащий D, был обновлён с помощью addExports, чтобы экспортировать пакет для модуля вызывающего кода. Условие (c) не выполнено, если модуль, содержащий D, был обновлён с помощью addOpens, чтобы открыть пакет для модуля вызывающего кода.
Этот метод может быть вызван из кода JNI, когда в стеке нет класса вызывающего кода. В этом случае, если базовое поле является final, этот объект Field имеет доступ на запись тогда и только тогда, когда выполнены все следующие условия, где D — это объявляющий класс поля:
-
setAccessible(true)был успешно вызван для этого объектаField. - Изменение final-полей разрешено для безымянного модуля.
- Поле является
public, аDнаходитсяpublicв пакете, экспортируемом для всех модулей. -
Dне является классом-записью. -
Dне является скрытым классом. - Поле не является статическим.
Если хотя бы одно из перечисленных выше условий не выполнено, этот метод выбрасывает IllegalAccessException.
Установка значения final-поля таким способом имеет смысл только при десериализации или восстановлении экземпляров классов с незаданными final-полями, до того как они станут доступны другим частям программы. Использование в любом другом контексте может привести к непредсказуемым последствиям, в том числе к тому, что другие части программы продолжат использовать исходное значение этого поля.
Если базовое поле имеет примитивный тип, выполняется попытка распаковки нового значения в значение примитивного типа. Если эта попытка завершается неудачей, метод выбрасывает IllegalArgumentException.
Если после возможной распаковки новое значение нельзя преобразовать к типу базового поля посредством тождественного или расширяющего преобразования, метод выбрасывает IllegalArgumentException.
Если базовое поле является статическим, класс, объявивший это поле, инициализируется, если он ещё не был инициализирован.
Полю присваивается новое значение после возможной распаковки и расширяющего преобразования.
Если в типе obj поле скрыто, значение поля устанавливается согласно приведённым выше правилам.
- Параметры:
-
obj— объект, поле которого следует изменить -
value— новое значение поляobj, которое изменяется - Исключения:
-
IllegalAccessException— если этот объектFieldобеспечивает соблюдение правил управления доступом языка Java, а базовое поле недоступно или является final; либо если этот объектFieldне имеет доступа на запись. -
IllegalArgumentException— если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если не удаётся выполнить распаковку. -
NullPointerException— если заданный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError— если не удаётся выполнить инициализацию, вызванную этим методом. - См. также:
setBoolean
public void setBoolean(Object obj, boolean z) throws IllegalArgumentException, IllegalAccessException
boolean в заданном объекте. Этот метод эквивалентен set(obj, zObj), где zObj — объект Boolean, а zObj.booleanValue() == z.- Параметры:
-
obj— объект, поле которого следует изменить -
z— новое значение поляobj, которое изменяется - Исключения:
-
IllegalAccessException— если этот объектFieldобеспечивает соблюдение правил управления доступом языка Java, а базовое поле недоступно или является final; либо если этот объектFieldне имеет доступа на запись. -
IllegalArgumentException— если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если не удаётся выполнить распаковку. -
NullPointerException— если заданный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError— если не удаётся выполнить инициализацию, вызванную этим методом. - См. также:
setByte
public void setByte(Object obj, byte b) throws IllegalArgumentException, IllegalAccessException
byte в заданном объекте. Этот метод эквивалентен set(obj, bObj), где bObj — объект Byte, а bObj.byteValue() == b.- Параметры:
-
obj— объект, поле которого следует изменить -
b— новое значение поляobj, которое изменяется - Исключения:
-
IllegalAccessException— если этот объектFieldобеспечивает соблюдение правил управления доступом языка Java, а базовое поле недоступно или является final; либо если этот объектFieldне имеет доступа на запись. -
IllegalArgumentException— если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если не удаётся выполнить распаковку. -
NullPointerException— если заданный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError— если не удаётся выполнить инициализацию, вызванную этим методом. - См. также:
setChar
public void setChar(Object obj, char c) throws IllegalArgumentException, IllegalAccessException
char в заданном объекте. Этот метод эквивалентен set(obj, cObj), где cObj — объект Character, а cObj.charValue() == c.- Параметры:
-
obj— объект, поле которого следует изменить -
c— новое значение поляobj, которое изменяется - Исключения:
-
IllegalAccessException— если этот объектFieldобеспечивает соблюдение правил управления доступом языка Java, а базовое поле недоступно или является final; либо если этот объектFieldне имеет доступа на запись. -
IllegalArgumentException— если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если не удаётся выполнить распаковку. -
NullPointerException— если заданный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError— если не удаётся выполнить инициализацию, вызванную этим методом. - См. также:
setShort
public void setShort(Object obj, short s) throws IllegalArgumentException, IllegalAccessException
short в заданном объекте. Этот метод эквивалентен set(obj, sObj), где sObj — объект Short, а sObj.shortValue() == s.- Параметры:
-
obj— объект, поле которого следует изменить -
s— новое значение поляobj, которое изменяется - Исключения:
-
IllegalAccessException— если этот объектFieldобеспечивает соблюдение правил управления доступом языка Java, а базовое поле недоступно или является final; либо если этот объектFieldне имеет доступа на запись. -
IllegalArgumentException— если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если не удаётся выполнить распаковку. -
NullPointerException— если заданный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError— если не удаётся выполнить инициализацию, вызванную этим методом. - См. также:
setInt
public void setInt(Object obj, int i) throws IllegalArgumentException, IllegalAccessException
int в заданном объекте. Этот метод эквивалентен set(obj, iObj), где iObj — объект Integer, а iObj.intValue() == i.- Параметры:
-
obj— объект, поле которого следует изменить -
i— новое значение поляobj, которое изменяется - Исключения:
-
IllegalAccessException— если этот объектFieldобеспечивает соблюдение правил управления доступом языка Java, а базовое поле недоступно или является final; либо если этот объектFieldне имеет доступа на запись. -
IllegalArgumentException— если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если не удаётся выполнить распаковку. -
NullPointerException— если заданный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError— если не удаётся выполнить инициализацию, вызванную этим методом. - См. также:
setLong
public void setLong(Object obj, long l) throws IllegalArgumentException, IllegalAccessException
long в заданном объекте. Этот метод эквивалентен set(obj, lObj), где lObj — объект Long, а lObj.longValue() == l.- Параметры:
-
obj— объект, поле которого следует изменить -
l— новое значение поляobj, которое изменяется - Исключения:
-
IllegalAccessException— если этот объектFieldобеспечивает соблюдение правил управления доступом языка Java, а базовое поле недоступно или является final; либо если этот объектFieldне имеет доступа на запись. -
IllegalArgumentException— если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если не удаётся выполнить распаковку. -
NullPointerException— если заданный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError— если не удаётся выполнить инициализацию, вызванную этим методом. - См. также:
setFloat
public void setFloat(Object obj, float f) throws IllegalArgumentException, IllegalAccessException
float в заданном объекте. Этот метод эквивалентен set(obj, fObj), где fObj — объект Float, а fObj.floatValue() == f.- Параметры:
-
obj— объект, поле которого следует изменить -
f— новое значение поляobj, которое изменяется - Исключения:
-
IllegalAccessException— если этот объектFieldобеспечивает соблюдение правил управления доступом языка Java, а базовое поле недоступно или является final; либо если этот объектFieldне имеет доступа на запись. -
IllegalArgumentException— если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если не удаётся выполнить распаковку. -
NullPointerException— если заданный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError— если не удаётся выполнить инициализацию, вызванную этим методом. - См. также:
setDouble
public void setDouble(Object obj, double d) throws IllegalArgumentException, IllegalAccessException
double в заданном объекте. Этот метод эквивалентен set(obj, dObj), где dObj — объект Double, а dObj.doubleValue() == d.- Параметры:
-
obj— объект, поле которого следует изменить -
d— новое значение поляobj, которое изменяется - Исключения:
-
IllegalAccessException— если этот объектFieldобеспечивает соблюдение правил управления доступом языка Java, а базовое поле недоступно или является final; либо если этот объектFieldне имеет доступа на запись. -
IllegalArgumentException— если заданный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подклассом либо реализацией), либо если не удаётся выполнить распаковку. -
NullPointerException— если заданный объект равен null, а поле является полем экземпляра. -
ExceptionInInitializerError— если не удаётся выполнить инициализацию, вызванную этим методом. - См. также:
getAnnotation
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
Обратите внимание: любая аннотация, возвращаемая этим методом, является аннотацией объявления.
- Определено в:
-
getAnnotationв интерфейсеAnnotatedElement - Переопределяет:
-
getAnnotationв классеAccessibleObject - Параметры типа:
T— тип аннотации для поиска и возврата, если она имеется- Параметры:
-
annotationClass— объект Class, соответствующий типу аннотации - Возвращает:
- аннотацию этого элемента для указанного типа аннотации, если она имеется у этого элемента; в противном случае возвращает null
- Исключения:
-
NullPointerException— если заданный класс аннотации равен null - С момента:
- 1.5
getAnnotationsByType
public <T extends Annotation> T[] getAnnotationsByType(Class<T> annotationClass)
AnnotatedElement.getAnnotation(Class) состоит в том, что этот метод определяет, является ли его аргумент повторяемым типом аннотации (JLS §9.6), и, если да, пытается найти одну или несколько аннотаций этого типа, «заглядывая внутрь» контейнерной аннотации. Вызывающий этот метод код может изменять возвращённый массив; это никак не повлияет на массивы, возвращаемые другим вызывающим кодам. Обратите внимание: любые аннотации, возвращаемые этим методом, являются аннотациями объявления.
- Определено в:
-
getAnnotationsByTypeв интерфейсеAnnotatedElement - Переопределяет:
-
getAnnotationsByTypeв классеAccessibleObject - Параметры типа:
T— тип аннотации для поиска и возврата, если она имеется- Параметры:
-
annotationClass— объект Class, соответствующий типу аннотации - Возвращает:
- все аннотации этого элемента для указанного типа, связанные с этим элементом; в противном случае возвращает массив нулевой длины
- Исключения:
-
NullPointerException— если заданный класс аннотации равен null - С момента:
- 1.8
getAnnotatedType
public AnnotatedType getAnnotatedType()
- Возвращает:
- объект, представляющий объявленный тип поля, представленного этим объектом Field
- С момента:
- 1.8
© 1993, 2025, 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.