Класс ArrayType<T>
- Параметры типа:
T- тип Java-компонента, которым должны обладать массивы, описываемые этим ArrayType.
- Все реализованные интерфейсы:
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
- См. также:
Краткое описание полей
Поля, объявленные в классе javax.management.openmbean.OpenType
ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ArrayType |
Создает экземпляр ArrayType, описывающий значения открытых данных, которые являются массивами с размерностью dimension элементов, открытый тип которых — elementType. |
ArrayType |
Создает одномерный экземпляр ArrayType для предоставленного SimpleType. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает указанный параметр obj с этим экземпляром ArrayType на равенство. |
static <E> ArrayType |
getArrayType |
Создаёт экземпляр ArrayType безопасным для типов способом. |
int |
getDimension() |
Возвращает размерность массивов, описываемых этим экземпляром ArrayType. |
OpenType |
getElementOpenType() |
Возвращает открытый тип значений элементов, содержащихся в массивах, описываемых этим экземпляром ArrayType. |
static <T> ArrayType |
getPrimitiveArrayType |
Создаёт экземпляр ArrayType безопасным для типов способом. |
int |
hashCode() |
Возвращает значение хэш-кода для этого экземпляра ArrayType. |
boolean |
isPrimitiveArray() |
Возвращает true, если значения открытых данных, описываемые этим открытым типом, являются примитивными массивами, false в противном случае. |
boolean |
isValue |
Проверяет, является ли obj значением для этого экземпляра ArrayType. |
String |
toString() |
Возвращает строковое представление этого экземпляра ArrayType. |
Методы, объявленные в классе javax.management.openmbean.OpenType
getClassName, getDescription, getTypeName, isArray
Подробное описание конструкторов
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- если className elementType не является одним из разрешённых имён Java-классов для открытых данных.
ArrayType
public ArrayType(SimpleType<?> elementType, boolean primitiveArray) throws OpenDataException
ArrayType размерностью 1 для предоставленного 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)
ArrayType. Этот метод возвращает true, если и только если obj не null, obj является массивом и выполняется хотя бы одно из следующих условий:
- если этот экземпляр
ArrayTypeописывает массив элементовSimpleTypeили их соответствующих примитивных типов, имя класса obj совпадает с полем className, определённым для этого экземпляраArrayType(т.е. имя класса, возвращаемое методомgetClassName, которое включает информацию о размерности),
- если этот экземпляр
ArrayTypeописывает массив классов, реализующих интерфейсTabularDataили интерфейсCompositeData, obj присваивается такому объявленному массиву, и каждый элемент, содержащийся в {obj, либо равен null, либо является допустимым значением для открытого типа элемента, указанного этим экземпляромArrayType.
equals
public boolean equals(Object obj)
obj параметр с этим экземпляром ArrayType на равенство. Два экземпляра ArrayType равны, если и только если они описывают экземпляры массивов, у которых одинаковая размерность, тип элементов и флаг примитивного массива.
- Определено в:
-
equalsв классеOpenType<T> - Параметры:
-
obj- объект для сравнения на равенство с этим экземпляромArrayType; если obj равенnullили не является экземпляром классаArrayType, этот метод возвращаетfalse. - Возвращает:
-
true, если указанный объект равен этому экземпляруArrayType. - См. также:
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, а затем то же значение возвращается для последующих вызовов.
toString
public String toString()
ArrayType объекта. Строковое представление состоит из имени этого класса (т.е. javax.management.openmbean.ArrayType), имени типа, размерности, открытого типа элементов и флага примитивного массива, определённых для этого объекта.
Так как ArrayType объекты неизменяемы, строковое представление для этого объекта вычисляется один раз при первом вызове toString, а затем это же значение возвращается для последующих вызовов.
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- тип Java, который должны иметь объекты- Параметры:
-
elementType- открытый тип значений элементов, содержащихся в массивах, описываемых этимArrayTypeобъектом; должен быть экземпляром либоSimpleType, либоCompositeType, либоTabularType, или другогоArrayTypeсSimpleType,CompositeTypeилиTabularTypeв качестве егоelementType. - Возвращает:
ArrayTypeобъект- Исключения:
-
OpenDataException- если 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- тип Java, который должны иметь объекты- Параметры:
-
arrayClass- класс примитивного массива, такой какint[].class,boolean[][].classи т.д. МетодgetElementOpenType()возвращаемогоArrayTypeобъекта возвращаетSimpleType, соответствующий обертывающему типу примитивного типа массива. - Возвращает:
ArrayTypeобъект- Исключения:
-
IllegalArgumentException- если arrayClass не является примитивным массивом. - С:
- 1.6
© 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://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/openmbean/ArrayType.html