Spec-Zone.ru › OpenJDK 27

Класс ArrayType<T>

java.lang.Object
javax.management.openmbean.OpenType<T>
javax.management.openmbean.ArrayType<T>
Параметры типа:
T
Все реализуемые интерфейсы:
Serializable
public class ArrayType<T> extends OpenType<T>
Класс ArrayType — это класс открытого типа, экземпляры которого описывают все значения открытых данных, являющиеся n-мерными массивами значений открытых данных.

Примеры допустимых экземпляров ArrayType:

// 2-dimension array of java.lang.String
ArrayType<String[][]> a1 = new ArrayType<String[][]>(2, SimpleType.STRING);

// 1-dimension array of int
ArrayType<int[]> a2 = new ArrayType<int[]>(SimpleType.INTEGER, true);

// 1-dimension array of java.lang.Integer
ArrayType<Integer[]> a3 = new ArrayType<Integer[]>(SimpleType.INTEGER, false);

// 4-dimension array of int
ArrayType<int[][][][]> a4 = new ArrayType<int[][][][]>(3, a2);

// 4-dimension array of java.lang.Integer
ArrayType<Integer[][][][]> a5 = new ArrayType<Integer[][][][]>(3, a3);

// 1-dimension array of java.lang.String
ArrayType<String[]> a6 = new ArrayType<String[]>(SimpleType.STRING, false);

// 1-dimension array of long
ArrayType<long[]> a7 = new ArrayType<long[]>(SimpleType.LONG, true);

// 1-dimension array of java.lang.Integer
ArrayType<Integer[]> a8 = ArrayType.getArrayType(SimpleType.INTEGER);

// 2-dimension array of java.lang.Integer
ArrayType<Integer[][]> a9 = ArrayType.getArrayType(a8);

// 2-dimension array of int
ArrayType<int[][]> a10 = ArrayType.getPrimitiveArrayType(int[][].class);

// 3-dimension array of int
ArrayType<int[][][]> a11 = ArrayType.getArrayType(a10);

// 1-dimension array of float
ArrayType<float[]> a12 = ArrayType.getPrimitiveArrayType(float[].class);

// 2-dimension array of float
ArrayType<float[][]> a13 = ArrayType.getArrayType(a12);

// 1-dimension array of javax.management.ObjectName
ArrayType<ObjectName[]> a14 = ArrayType.getArrayType(SimpleType.OBJECTNAME);

// 2-dimension array of javax.management.ObjectName
ArrayType<ObjectName[][]> a15 = ArrayType.getArrayType(a14);

// 3-dimension array of java.lang.String
ArrayType<String[][][]> a16 = new ArrayType<String[][][]>(3, SimpleType.STRING);

// 1-dimension array of java.lang.String
ArrayType<String[]> a17 = new ArrayType<String[]>(1, SimpleType.STRING);

// 2-dimension array of java.lang.String
ArrayType<String[][]> a18 = new ArrayType<String[][]>(1, a17);

// 3-dimension array of java.lang.String
ArrayType<String[][][]> a19 = new ArrayType<String[][][]>(1, a18);
Начиная с версии:
1.5
См. также:
  • Сериализованная форма

Краткое описание полей

Поля, объявленные в классе OpenType

ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST
Модификатор и тип Поле Описание
static final String[] ALLOWED_CLASSNAMES
Устарело.
Вместо этого используйте ALLOWED_CLASSNAMES_LIST.
static final List<String> ALLOWED_CLASSNAMES_LIST
Список полных имен Java-классов, допустимых для значений открытых данных.

Краткое описание конструкторов

Конструктор Описание
ArrayType(int dimension, OpenType<?> elementType)
Создает экземпляр ArrayType, описывающий значения открытых данных, представляющие собой массивы размерности dimension с элементами, открытый тип которых — elementType.
ArrayType(SimpleType<?> elementType, boolean primitiveArray)
Создает одномерный экземпляр ArrayType для указанного SimpleType.

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object obj)
Сравнивает указанный параметр obj с этим экземпляром ArrayType на равенство.
static <E> ArrayType<E[]> getArrayType(OpenType<E> elementType)
Создает экземпляр ArrayType с проверкой типов.
int getDimension()
Возвращает размерность массивов, описываемых этим экземпляром ArrayType.
OpenType<?> getElementOpenType()
Возвращает открытый тип значений элементов, содержащихся в массивах, описываемых этим экземпляром ArrayType.
static <T> ArrayType<T> getPrimitiveArrayType(Class<T> arrayClass)
Создает экземпляр ArrayType с проверкой типов.
int hashCode()
Возвращает хеш-код этого экземпляра ArrayType.
boolean isPrimitiveArray()
Возвращает true, если значения открытых данных, описываемые этим открытым типом, являются массивами примитивных типов, и false в противном случае.
boolean isValue(Object obj)
Проверяет, является ли obj значением для этого экземпляра ArrayType.
String toString()
Возвращает строковое представление этого экземпляра ArrayType.

Методы, объявленные в классе OpenType

getClassName, getDescription, getTypeName, isArray
Модификатор и тип Метод Описание
String getClassName()
Возвращает полное имя класса Java для значений открытых данных, описываемых этим открытым типом.
String getDescription()
Возвращает текстовое описание этого экземпляра OpenType.
String getTypeName()
Возвращает имя этого экземпляра OpenType.
boolean isArray()
Возвращает true, если значения открытых данных, описываемые этим открытым типом, являются массивами, и false в противном случае.

Методы, объявленные в классе 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()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени.

Подробное описание конструкторов

ArrayType

public ArrayType(int dimension, OpenType<?> elementType) throws OpenDataException
Создает экземпляр ArrayType, описывающий значения открытых данных, представляющие собой массивы размерности dimension с элементами, открытый тип которых — elementType.

При вызове для экземпляра ArrayType метод getClassName возвращает имя класса экземпляров массивов, которые он описывает (в соответствии с правилами, определенными методом getName класса java.lang.Class), а не имя класса элементов массива (оно возвращается при вызове getElementOpenType().getClassName()).

Внутреннее поле, соответствующее имени типа этого экземпляра ArrayType, также устанавливается в имя класса экземпляров массивов, которые он описывает. Иными словами, методы getClassName и getTypeName возвращают одно и то же строковое значение. Внутреннее поле, соответствующее описанию этого экземпляра ArrayType, устанавливается в строковое значение, соответствующее следующему шаблону:

  • если массив не примитивный: <dimension>-dimension array of <element_class_name>
  • если массив примитивный: <dimension>-dimension array of <primitive_type_of_the_element_class_name>

Например, следующий фрагмент кода:

ArrayType<String[][][]> t = new ArrayType<String[][][]>(3, SimpleType.STRING);
System.out.println("array class name       = " + t.getClassName());
System.out.println("element class name     = " + t.getElementOpenType().getClassName());
System.out.println("array type name        = " + t.getTypeName());
System.out.println("array type description = " + t.getDescription());
выведет следующий результат:
array class name       = [[[Ljava.lang.String;
element class name     = java.lang.String
array type name        = [[[Ljava.lang.String;
array type description = 3-dimension array of java.lang.String
Следующий фрагмент кода, эквивалентный приведенному выше, также выведет тот же результат:
ArrayType<String[]> t1 = new ArrayType<String[]>(1, SimpleType.STRING);
ArrayType<String[][]> t2 = new ArrayType<String[][]>(1, t1);
ArrayType<String[][][]> t3 = new ArrayType<String[][][]>(1, t2);
System.out.println("array class name       = " + t3.getClassName());
System.out.println("element class name     = " + t3.getElementOpenType().getClassName());
System.out.println("array type name        = " + t3.getTypeName());
System.out.println("array type description = " + t3.getDescription());
Параметры:
dimension — размерность массивов, описываемых этим экземпляром ArrayType; должна быть больше или равна 1.
elementType — открытый тип значений элементов, содержащихся в массивах, описываемых этим экземпляром ArrayType; должен быть экземпляром одного из типов SimpleType, CompositeType, TabularType или другого ArrayType с SimpleType, CompositeType или TabularType в качестве elementType.
Исключения:
IllegalArgumentException — если dimension не является положительным целым числом.
OpenDataException — если elementType's className не входит в список допустимых имен классов Java для открытых данных.

ArrayType

public ArrayType(SimpleType<?> elementType, boolean primitiveArray) throws OpenDataException
Создает одномерный экземпляр ArrayType для указанного SimpleType.

Этот конструктор поддерживает создание массивов примитивных типов, если primitiveArray равно true.

Для массивов примитивных типов метод getElementOpenType() возвращает SimpleType, соответствующий типу-оболочке примитивного типа массива.

При вызове для экземпляра ArrayType метод getClassName возвращает имя класса экземпляров массивов, которые он описывает (в соответствии с правилами, определенными методом getName класса java.lang.Class), а не имя класса элементов массива (оно возвращается при вызове getElementOpenType().getClassName()).

Внутреннее поле, соответствующее имени типа этого экземпляра ArrayType, также устанавливается в имя класса экземпляров массивов, которые он описывает. Иными словами, методы getClassName и getTypeName возвращают одно и то же строковое значение. Внутреннее поле, соответствующее описанию этого экземпляра ArrayType, устанавливается в строковое значение, соответствующее следующему шаблону:

  • если массив не примитивный: 1-dimension array of <element_class_name>
  • если массив примитивный: 1-dimension array of <primitive_type_of_the_element_class_name>

Например, следующий фрагмент кода:

ArrayType<int[]> t = new ArrayType<int[]>(SimpleType.INTEGER, true);
System.out.println("array class name       = " + t.getClassName());
System.out.println("element class name     = " + t.getElementOpenType().getClassName());
System.out.println("array type name        = " + t.getTypeName());
System.out.println("array type description = " + t.getDescription());
выведет следующий результат:
array class name       = [I
element class name     = java.lang.Integer
array type name        = [I
array type description = 1-dimension array of int
Параметры:
elementType — SimpleType значений элементов, содержащихся в массивах, описываемых этим экземпляром ArrayType.
primitiveArray — true, если этот массив описывает массивы примитивных типов.
Исключения:
IllegalArgumentException — если dimension не является положительным целым числом.
OpenDataException — если primitiveArray имеет значение true, а elementType не является допустимым SimpleType для примитивного типа.
Начиная с версии:
1.6

Подробное описание методов

getDimension

public int getDimension()
Возвращает размерность массивов, описываемых этим экземпляром ArrayType.
Возвращает:
размерность.

getElementOpenType

public OpenType<?> getElementOpenType()
Возвращает открытый тип значений элементов, содержащихся в массивах, описываемых этим экземпляром ArrayType.
Возвращает:
тип элемента.

isPrimitiveArray

public boolean isPrimitiveArray()
Возвращает true, если значения открытых данных, описываемые этим открытым типом, являются массивами примитивных типов, и false в противном случае.
Возвращает:
true, если это тип массива примитивных типов.
Начиная с версии:
1.6

isValue

public boolean isValue(Object obj)
Проверяет, является ли obj значением для этого экземпляра ArrayType.

Этот метод возвращает true тогда и только тогда, когда obj не равно null, obj является массивом и выполняется одно из следующих условий (true):

  • если этот экземпляр ArrayType описывает массив элементов типа SimpleType или соответствующих им примитивных типов, имя класса obj совпадает со значением поля className, определенного для этого экземпляра ArrayType (то есть с именем класса, возвращаемым методом getClassName, которое включает информацию о размерности),
  • если этот экземпляр ArrayType описывает массив классов, реализующих интерфейс TabularData или интерфейс CompositeData, obj можно присвоить переменной такого объявленного типа массива, и каждый содержащийся в нем элемент {obj равен null или является допустимым значением для открытого типа элемента, заданного этим экземпляром ArrayType.
Определено в:
isValue в классе OpenType<T>
Параметры:
obj — объект для проверки.
Возвращает:
true, если obj является значением для этого экземпляра ArrayType.

equals

public boolean equals(Object obj)
Сравнивает указанный параметр obj с этим экземпляром ArrayType на равенство.

Два экземпляра ArrayType равны тогда и только тогда, когда они описывают экземпляры массивов с одинаковой размерностью, открытым типом элементов и признаком массива примитивных типов.

Определено в:
equals в классе OpenType<T>
Параметры:
obj — объект для сравнения на равенство с этим экземпляром ArrayType; если obj равен null или не является экземпляром класса ArrayType, этот метод возвращает false.
Возвращает:
true, если указанный объект равен этому экземпляру ArrayType.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает хеш-код этого экземпляра ArrayType.

Хеш-код экземпляра ArrayType представляет собой сумму хеш-кодов всех элементов информации, используемых при сравнении equals (то есть размерности, открытого типа элементов и признака массива примитивных типов). Хеш-код примитивного значения совпадает с хеш-кодом соответствующего упакованного объекта (например, хеш-код true равен Boolean.TRUE.hashCode()). Это гарантирует, что из t1.equals(t2) следует t1.hashCode()==t2.hashCode() для любых двух экземпляров ArrayType t1 и t2, как того требует общий контракт метода Object.hashCode().

Поскольку экземпляры ArrayType неизменяемы, хеш-код этого экземпляра вычисляется один раз при первом вызове hashCode, а при последующих вызовах возвращается то же значение.

Переопределяет:
hashCode в классе Object
Возвращает:
значение хеш-кода этого экземпляра ArrayType
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString()
Возвращает строковое представление этого экземпляра ArrayType.

Строковое представление состоит из имени этого класса (то есть javax.management.openmbean.ArrayType), имени типа, размерности, открытого типа элементов и признака массива примитивных типов, определенных для этого экземпляра.

Поскольку экземпляры ArrayType неизменяемы, строковое представление этого экземпляра вычисляется один раз при первом вызове toString, а при последующих вызовах возвращается то же значение.

Определено в:
toString в классе OpenType<T>
Возвращает:
строковое представление этого экземпляра ArrayType

getArrayType

public static <E> ArrayType<E[]> getArrayType(OpenType<E> elementType) throws OpenDataException
Создает экземпляр ArrayType с проверкой типов.

Многомерные массивы можно создавать, вызывая этот метод необходимое число раз.

Два вызова этого метода с одинаковыми параметрами могут вернуть один и тот же объект либо два равных, но не идентичных объекта.

Например, следующий фрагмент кода:

ArrayType<String[]> t1 = ArrayType.getArrayType(SimpleType.STRING);
ArrayType<String[][]> t2 = ArrayType.getArrayType(t1);
ArrayType<String[][][]> t3 = ArrayType.getArrayType(t2);
System.out.println("array class name       = " + t3.getClassName());
System.out.println("element class name     = " + t3.getElementOpenType().getClassName());
System.out.println("array type name        = " + t3.getTypeName());
System.out.println("array type description = " + t3.getDescription());
выведет следующий результат:
array class name       = [[[Ljava.lang.String;
element class name     = java.lang.String
array type name        = [[[Ljava.lang.String;
array type description = 3-dimension array of java.lang.String
Параметры типа:
E
Параметры:
elementType — открытый тип значений элементов, содержащихся в массивах, описываемых этим экземпляром ArrayType; должен быть экземпляром одного из типов SimpleType, CompositeType, TabularType или другого ArrayType с SimpleType, CompositeType или TabularType в качестве elementType.
Возвращает:
экземпляр ArrayType
Исключения:
OpenDataException — если elementType's className не входит в список допустимых имен классов Java для открытых данных.
Начиная с версии:
1.6

getPrimitiveArrayType

public static <T> ArrayType<T> getPrimitiveArrayType(Class<T> arrayClass)
Создает экземпляр ArrayType с проверкой типов.

Два вызова этого метода с одинаковыми параметрами могут вернуть один и тот же объект либо два равных, но не идентичных объекта.

Например, следующий фрагмент кода:

ArrayType<int[][][]> t = ArrayType.getPrimitiveArrayType(int[][][].class);
System.out.println("array class name       = " + t.getClassName());
System.out.println("element class name     = " + t.getElementOpenType().getClassName());
System.out.println("array type name        = " + t.getTypeName());
System.out.println("array type description = " + t.getDescription());
выведет следующий результат:
array class name       = [[[I
element class name     = java.lang.Integer
array type name        = [[[I
array type description = 3-dimension array of int
Параметры типа:
T
Параметры:
arrayClass — класс массива примитивного типа, например int[].class, boolean[][].class и т. д. Метод getElementOpenType() возвращенного ArrayType возвращает SimpleType, соответствующий типу-оболочке примитивного типа массива.
Возвращает:
экземпляр ArrayType
Исключения:
IllegalArgumentException — если arrayClass не является классом массива примитивного типа.
Начиная с версии:
1.6

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков с концептуальными обзорами, определениями терминов, обходными решениями и рабочими примерами кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API