Класс 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, описывающий значения открытых данных, которые являются массивами с размерностью 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.

Методы, объявленные в классе 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

Spec-Zone .ru
спецификации, руководства, описания, API