Класс ArrayType<T>
- java.lang.Object
-
- javax.management.openmbean.OpenType<T>
-
- javax.management.openmbean.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(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.
При вызове метода 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- значение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 является массивом и выполняется одно из следующих условий:
- если этот экземпляр
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в классеOpenType<T> - Возвращает:
- значение хэш-кода для этого экземпляра
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
- Параметры:
-
elementType- открытый тип значений элементов, содержащихся в массивах, описываемых этим экземпляромArrayType; должен быть экземпляромSimpleType,CompositeType,TabularTypeили другогоArrayTypeсSimpleType,CompositeTypeилиTabularTypeв качестве егоelementType. - Исключения:
-
OpenDataException- если className элемента elementType не является одним из разрешённых имён классов 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
- Параметры:
-
arrayClass- класс примитивного массива, такой какint[].class,boolean[][].class, и т. д. МетодgetElementOpenType()возвращаемогоArrayTypeвозвращаетSimpleType, соответствующий обёртке примитивного типа массива. - Исключения:
-
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.