Класс 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
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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. |
Методы, объявленные в классе 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— если 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)
ArrayType. Этот метод возвращает true тогда и только тогда, когда obj не равен null, obj является массивом и выполняется одно из следующих условий: true:
- если этот экземпляр
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- Параметры:
-
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
© 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/openmbean/ArrayType.html