Класс MBeanInfo
- Все реализуемые интерфейсы:
Serializable, Cloneable, DescriptorRead
- Прямые известные подклассы:
ModelMBeanInfoSupport, OpenMBeanInfoSupport
public class MBeanInfo extends Object implements Cloneable, Serializable, DescriptorRead
Описывает интерфейс управления, предоставляемый MBean, то есть набор атрибутов и операций, доступных для управления. Экземпляры этого класса неизменяемы. Подклассы могут быть изменяемыми, но это не рекомендуется.
Обычно MBeanInfo для любого заданного MBean не меняется на протяжении всего срока его существования. Динамические MBean могут изменять свои MBeanInfo, и в этом случае рекомендуется отправлять Notification с типом
"jmx.mbean.info.changed" и userData, содержащим новый MBeanInfo. Это не является обязательным, но предоставляет клиентам MBean общепринятый способ обнаружения изменений. См. также поля immutableInfo и infoTimeout в
MBeanInfo Descriptor.
Содержимое MBeanInfo для динамического MBean определяется его методом getMBeanInfo(). Это относится к открытым MBean и модельным MBean, которые являются разновидностями динамических MBean.
Содержимое MBeanInfo для стандартного MBean определяется сервером MBean следующим образом:
-
getClassName()возвращает имя класса Java объекта MBean; -
getConstructors()возвращает список всех открытых конструкторов этого объекта; -
getAttributes()возвращает список всех атрибутов, наличие которых определяется по наличию в интерфейсе MBean методаgetName,isNameилиsetName, соответствующего соглашениям для стандартных MBean; -
getOperations()возвращает список всех методов интерфейса MBean, не представляющих атрибуты; -
getNotifications()возвращает пустой массив, если MBean не реализует интерфейсNotificationBroadcaster, в противном случае — результат вызова для него методаNotificationBroadcaster.getNotificationInfo(); -
getDescriptor()возвращает дескриптор, содержащий данные всех аннотаций дескрипторов в интерфейсе MBean (см.@DescriptorKey).
Описание, возвращаемое методом getDescription(), а также описания содержащихся атрибутов и операций не определены.
Остальные подробности MBeanInfo стандартного MBean не определены. Это касается описаний содержащихся конструкторов и уведомлений, имен параметров конструкторов и операций, а также описаний параметров конструкторов.
- Начиная с версии:
- 1.5
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
MBeanInfo |
Создает MBeanInfo. |
MBeanInfo |
Создает MBeanInfo. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает поверхностную копию этого экземпляра. |
boolean |
equals |
Сравнивает этот MBeanInfo с другим. |
MBeanAttributeInfo[] |
getAttributes() |
Возвращает список атрибутов, предоставляемых для управления. |
String |
getClassName() |
Возвращает имя класса Java описываемого этим MBeanInfo объекта MBean. |
MBeanConstructorInfo[] |
getConstructors() |
Возвращает список открытых конструкторов MBean. |
String |
getDescription() |
Возвращает понятное человеку описание MBean. |
Descriptor |
getDescriptor() |
Получает дескриптор этого MBeanInfo. |
MBeanNotificationInfo[] |
getNotifications() |
Возвращает список уведомлений, отправляемых MBean. |
MBeanOperationInfo[] |
getOperations() |
Возвращает список операций MBean. |
Подробное описание конструкторов
MBeanInfo
public MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications) throws IllegalArgumentException
MBeanInfo.- Параметры:
-
className— имя класса Java объекта MBean, описываемого этимMBeanInfo. Это значение может быть любым синтаксически допустимым именем класса Java. Оно не обязано соответствовать классу Java, известному серверу MBean или загрузчику классов MBean. Если это класс Java, известный загрузчику классов MBean, рекомендуется, но не требуется, чтобы открытые методы класса включали методы, которые присутствовали бы в стандартном MBean, реализующем атрибуты и операции этого MBeanInfo. -
description— понятное человеку описание MBean (необязательно). -
attributes— список предоставляемых атрибутов MBean. Может быть null; эффект будет таким же, как при массиве нулевой длины. -
constructors— список открытых конструкторов MBean. Может быть null; эффект будет таким же, как при массиве нулевой длины. -
operations— список операций MBean. Может быть null; эффект будет таким же, как при массиве нулевой длины. -
notifications— список отправляемых уведомлений. Может быть null; эффект будет таким же, как при массиве нулевой длины. - Вызывает исключение:
IllegalArgumentException
MBeanInfo
public MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications, Descriptor descriptor) throws IllegalArgumentException
MBeanInfo.- Параметры:
-
className— имя класса Java объекта MBean, описываемого этимMBeanInfo. Это значение может быть любым синтаксически допустимым именем класса Java. Оно не обязано соответствовать классу Java, известному серверу MBean или загрузчику классов MBean. Если это класс Java, известный загрузчику классов MBean, рекомендуется, но не требуется, чтобы открытые методы класса включали методы, которые присутствовали бы в стандартном MBean, реализующем атрибуты и операции этого MBeanInfo. -
description— понятное человеку описание MBean (необязательно). -
attributes— список предоставляемых атрибутов MBean. Может быть null; эффект будет таким же, как при массиве нулевой длины. -
constructors— список открытых конструкторов MBean. Может быть null; эффект будет таким же, как при массиве нулевой длины. -
operations— список операций MBean. Может быть null; эффект будет таким же, как при массиве нулевой длины. -
notifications— список отправляемых уведомлений. Может быть null; эффект будет таким же, как при массиве нулевой длины. -
descriptor— дескриптор для MBean. Может быть null, что эквивалентно пустому дескриптору. - Вызывает исключение:
IllegalArgumentException- Начиная с версии:
- 1.6
Подробное описание методов
clone
public Object clone()
Возвращает поверхностную копию этого экземпляра. Копия создается простым вызовом super.clone(), то есть вызовом стандартного собственного механизма поверхностного копирования, реализованного в Object.clone(). Глубокое копирование внутренних полей не выполняется.
Поскольку этот класс неизменяем, метод clone представляет интерес главным образом для подклассов.
getClassName
public String getClassName()
MBeanInfo.- Возвращает:
- имя класса.
getDescription
public String getDescription()
- Возвращает:
- описание.
getAttributes
public MBeanAttributeInfo[] getAttributes()
MBeanAttributeInfo. Возвращаемый массив является поверхностной копией внутреннего массива, то есть копией внутреннего массива ссылок на объекты MBeanAttributeInfo, но каждый объект MBeanAttributeInfo, на который ссылается массив, не копируется.- Возвращает:
- массив объектов
MBeanAttributeInfo.
getOperations
public MBeanOperationInfo[] getOperations()
MBeanOperationInfo. Возвращаемый массив является поверхностной копией внутреннего массива, то есть копией внутреннего массива ссылок на объекты MBeanOperationInfo, но каждый объект MBeanOperationInfo, на который ссылается массив, не копируется.- Возвращает:
- массив объектов
MBeanOperationInfo.
getConstructors
public MBeanConstructorInfo[] getConstructors()
Возвращает список открытых конструкторов MBean. Каждый конструктор описывается объектом MBeanConstructorInfo.
Возвращаемый массив является поверхностной копией внутреннего массива, то есть копией внутреннего массива ссылок на объекты MBeanConstructorInfo, но каждый объект MBeanConstructorInfo, на который ссылается массив, не копируется.
Возвращаемый список не обязательно является исчерпывающим. Иными словами, у MBean может быть открытый конструктор, отсутствующий в списке. В этом случае сервер MBean может создать другой экземпляр класса этого MBean с помощью такого конструктора, даже если он здесь не указан.
- Возвращает:
- массив объектов
MBeanConstructorInfo.
getNotifications
public MBeanNotificationInfo[] getNotifications()
MBeanNotificationInfo. Возвращаемый массив является поверхностной копией внутреннего массива, то есть копией внутреннего массива ссылок на объекты MBeanNotificationInfo, но каждый объект MBeanNotificationInfo, на который ссылается массив, не копируется.- Возвращает:
- массив объектов
MBeanNotificationInfo.
getDescriptor
public Descriptor getDescriptor()
- Указан в:
-
getDescriptorв интерфейсеDescriptorRead - Возвращает:
- дескриптор, который является неизменяемым или копией исходного.
- Начиная с версии:
- 1.6
equals
public boolean equals(Object o)
Сравнивает этот MBeanInfo с другим. Два объекта MBeanInfo равны тогда и только тогда, когда они возвращают равные значения для getClassName(), getDescription() и getDescriptor(), а массивы, возвращаемые обоими объектами для getAttributes(), getOperations(), getConstructors() и getNotifications(), попарно равны. Здесь «равны» означает Object.equals(Object), а не идентичны.
Если два объекта MBeanInfo возвращают одинаковые значения в одном из своих массивов, но в разном порядке, то они не равны.
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/MBeanInfo.html