Spec-Zone .ru
спецификации, руководства, описания, API
|
Типы массива могут быть идентифицированы, вызывая Class.isArray()
. Получить a Class
пример идентифицирует поля в именованном class, которые имеют тип массива, и сообщает о компонентном типе для каждого из них.ArrayFind
import java.lang.reflect.Field; import java.lang.reflect.Type; import static java.lang.System.out; public class ArrayFind { public static void main(String... args) { boolean found = false; try { Class<?> cls = Class.forName(args[0]); Field[] flds = cls.getDeclaredFields(); for (Field f : flds) { Class<?> c = f.getType(); if (c.isArray()) { found = true; out.format("%s%n" + " Field: %s%n" + " Type: %s%n" + " Component Type: %s%n", f, f.getName(), c, c.getComponentType()); } } if (!found) { out.format("No array fields%n"); } // production code should handle this exception more gracefully } catch (ClassNotFoundException x) { x.printStackTrace(); } } }
Синтаксис для возвращенного значения Class.get*Type()
описывается в Class.getName()
. Число'[
'символы в начале имени типа указывают на число размерностей (то есть глубина вложения) массива.
Выборки вывода следуют. Ввод данных пользователем курсивом. Массив типа примитива byte
:
$java ArrayFind java.nio.ByteBuffer final byte[] java.nio.ByteBuffer.hb Field: hb Type: class [B Component Type: byte
Массив ссылочного типа StackTraceElement
$ java ArrayFind java.lang.Throwable private java.lang.StackTraceElement[] java.lang.Throwable.stackTrace Field: stackTrace Type: class [Ljava.lang.StackTraceElement; Component Type: class java.lang.StackTraceElement
predefined
одномерный массив ссылочного типа java.awt.Cursor
cursorProperties
двумерный массив ссылочного типа String
$ java ArrayFind java.awt.Cursor protected static java.awt.Cursor[] java.awt.Cursor.predefined Field: predefined Type: class [Ljava.awt.Cursor; Component Type: class java.awt.Cursor static final java.lang.String[][] java.awt.Cursor.cursorProperties Field: cursorProperties Type: class [[Ljava.lang.String; Component Type: class [Ljava.lang.String;