Класс ArrayType<T>
- Все реализованные интерфейсы:
Serializable
public class ArrayType<T> extends OpenType<T>
ArrayType — это класс открытого типа, экземпляры которого описывают все значения открытых данных, являющиеся многомерными массивами значений открытых данных. Примеры допустимых экземпляров 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<E[]> |
getArrayType |
Создаёт экземпляр ArrayType безопасным способом с учётом типа. |
int |
getDimension() |
Возвращает размерность массивов, описываемых этим экземпляром ArrayType. |
OpenType<?> |
getElementOpenType() |
Возвращает открытый тип значений элементов, содержащихся в массивах, описываемых этим экземпляром ArrayType. |
static <T> ArrayType<T> |
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. При вызове метода getClassName на экземпляре ArrayType, он возвращает имя класса экземпляров массивов (следуя правилам, определённым методом 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 для указанного SimpleType. Этот конструктор поддерживает создание массивов примитивных типов, когда primitiveArray равно true.
Для примитивных массивов метод getElementOpenType() возвращает SimpleType, соответствующий обертывающему типу примитивного типа массива.
При вызове метода getClassName на экземпляре ArrayType, он возвращает имя класса экземпляров массивов (следуя правилам, определённым методом 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- тип элементов, содержащихся в массивах, описываемых этим экземпляромArrayType. -
primitiveArray- признак примитивного массива. - Исключения:
-
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.
- Унаследовано от:
-
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. - См. также:
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 - См. также:
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
- Type Parameters:
-
E- тип Java, который должен описывать экземпляры - Parameters:
-
elementType- открытый тип элементов, содержащихся в массивах, описываемых этим экземпляромArrayType; должен быть экземпляромSimpleType,CompositeType,TabularTypeили другогоArrayTypeсSimpleType,CompositeTypeилиTabularTypeв качестве егоelementType. - Returns:
- экземпляр
ArrayType - Throws:
-
OpenDataException- если className элемента не является одним из разрешенных имен классов Java для открытых данных. - Since:
- 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
- Type Parameters:
-
T- тип Java, который должен описывать экземпляры - Parameters:
-
arrayClass- класс примитивного массива, например,int[].class,boolean[][].class, и т.д. МетодgetElementOpenType()возвращенного экземпляраArrayTypeвозвращаетSimpleType, соответствующий обернутому типу примитивного типа массива. - Returns:
- экземпляр
ArrayType - Throws:
-
IllegalArgumentException- если arrayClass не является примитивным массивом. - Since:
- 1.6
© 1993, 2021, 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/17/docs/api/java.management/javax/management/openmbean/ArrayType.html