Spec-Zone.ru › OpenJDK 21

Класс ArrayType<T>

java.lang.Object
javax.management.openmbean.OpenType<T>
javax.management.openmbean.ArrayType<T>
Type Parameters:
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(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.

При вызове метода 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)
Проверяет, является ли 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.
См. также:
  • 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 - если 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, 2023, 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/21/docs/api/java.management/javax/management/openmbean/ArrayType.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API