Класс ArrayType<T>
- java.lang.Object
-
- javax.management.openmbean.OpenType<T>
-
- javax.management.openmbean.ArrayType<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
- См. также:
- Сериализованная форма
Поля
Поля, объявленные в классе javax.management.openmbean.OpenType
ALLOWED_CLASSNAMES, ALLOWED_CLASSNAMES_LIST Конструкторы
| Конструктор | Описание |
|---|---|
ArrayType(int dimension,
OpenType<?> elementType) | Создаёт экземпляр |
ArrayType(SimpleType<?> elementType,
boolean primitiveArray) | Создаёт одномерный экземпляр |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | equals(Object obj) | Сравнивает указанный параметр |
static <E> ArrayType<E[]> | getArrayType(OpenType<E> elementType) | Создаёт экземпляр |
int | getDimension() | Возвращает размерность массивов, описываемых этим экземпляром |
OpenType<?> | getElementOpenType() | Возвращает открытый тип значений элементов, содержащихся в массивах, описываемых этим экземпляром |
static <T> ArrayType<T> | getPrimitiveArrayType(Class<T> arrayClass) | Создаёт экземпляр |
int | hashCode() | Возвращает хэш-код для этого экземпляра |
boolean | isPrimitiveArray() | Возвращает |
boolean | isValue(Object obj) | Проверяет, является ли obj значением для этого экземпляра |
String | toString() | Возвращает строковое представление этого экземпляра |
Методы, объявленные в классе javax.management.openmbean.OpenType
getClassName, getDescription, getTypeName, isArray Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Конструкторы
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 элементаpublic ArrayType(SimpleType<?> elementType, boolean primitiveArray) throws OpenDataExceptionне является одним из разрешённых имён классов 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- тип элементов, содержащихся в массивах, описываемых этим экземпляром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(java.lang.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- тип Java, которым должны обладать экземпляры - Параметры:
-
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- тип Java, которым должны обладать экземпляры - Параметры:
-
arrayClass- класс примитивного массива, например,int[].class,boolean[][].class, и т.д. МетодgetElementOpenType()возвращённогоArrayTypeвозвращаетSimpleType, соответствующий обертывающему типу примитивного типа массива. - Возвращает:
- экземпляр
ArrayType - Исключения:
-
IllegalArgumentException- если arrayClass не является примитивным массивом. - С тех пор:
- 1.6
© 1993, 2020, 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/11/docs/api/java.management/javax/management/openmbean/ArrayType.html