<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FReflection%2FArray_Reflection</id>
		<title>Java/Reflection/Array Reflection - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FReflection%2FArray_Reflection"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Reflection/Array_Reflection&amp;action=history"/>
		<updated>2026-04-23T08:46:56Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Reflection/Array_Reflection&amp;diff=6067&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Reflection/Array_Reflection&amp;diff=6067&amp;oldid=prev"/>
				<updated>2010-06-01T06:01:39Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:01, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Reflection/Array_Reflection&amp;diff=6066&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Reflection/Array_Reflection&amp;diff=6066&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Array Reflection: create instance ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/* From http://java.sun.ru/docs/books/tutorial/index.html */&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995-1998 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Permission to use, copy, modify, and distribute this software and its&lt;br /&gt;
 * documentation for NON-COMMERCIAL purposes and without fee is hereby granted&lt;br /&gt;
 * provided that this copyright notice appears in all copies. Please refer to&lt;br /&gt;
 * the file &amp;quot;copyright.html&amp;quot; for further important copyright and licensing&lt;br /&gt;
 * information.&lt;br /&gt;
 * &lt;br /&gt;
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE&lt;br /&gt;
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED&lt;br /&gt;
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR&lt;br /&gt;
 * NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY&lt;br /&gt;
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS&lt;br /&gt;
 * DERIVATIVES.&lt;br /&gt;
 */&lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
public class SampleCreateArrayReflection {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    int[] originalArray = { 55, 66 };&lt;br /&gt;
    int[] biggerArray = (int[]) doubleArray(originalArray);&lt;br /&gt;
    System.out.println(&amp;quot;originalArray:&amp;quot;);&lt;br /&gt;
    for (int k = 0; k &amp;lt; Array.getLength(originalArray); k++)&lt;br /&gt;
      System.out.println(originalArray[k]);&lt;br /&gt;
    System.out.println(&amp;quot;biggerArray:&amp;quot;);&lt;br /&gt;
    for (int k = 0; k &amp;lt; Array.getLength(biggerArray); k++)&lt;br /&gt;
      System.out.println(biggerArray[k]);&lt;br /&gt;
  }&lt;br /&gt;
  static Object doubleArray(Object source) {&lt;br /&gt;
    int sourceLength = Array.getLength(source);&lt;br /&gt;
    Class arrayClass = source.getClass();&lt;br /&gt;
    Class componentClass = arrayClass.getComponentType();&lt;br /&gt;
    Object result = Array.newInstance(componentClass, sourceLength * 2);&lt;br /&gt;
    System.arraycopy(source, 0, result, 0, sourceLength);&lt;br /&gt;
    return result;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Array Reflection: getComponentType() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/* From http://java.sun.ru/docs/books/tutorial/index.html */&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995-1998 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Permission to use, copy, modify, and distribute this software and its&lt;br /&gt;
 * documentation for NON-COMMERCIAL purposes and without fee is hereby granted&lt;br /&gt;
 * provided that this copyright notice appears in all copies. Please refer to&lt;br /&gt;
 * the file &amp;quot;copyright.html&amp;quot; for further important copyright and licensing&lt;br /&gt;
 * information.&lt;br /&gt;
 * &lt;br /&gt;
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE&lt;br /&gt;
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED&lt;br /&gt;
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR&lt;br /&gt;
 * NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY&lt;br /&gt;
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS&lt;br /&gt;
 * DERIVATIVES.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.Button;&lt;br /&gt;
public class SampleComponentReflection {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    int[] ints = new int[2];&lt;br /&gt;
    Button[] buttons = new Button[6];&lt;br /&gt;
    String[][] twoDim = new String[4][5];&lt;br /&gt;
    printComponentType(ints);&lt;br /&gt;
    printComponentType(buttons);&lt;br /&gt;
    printComponentType(twoDim);&lt;br /&gt;
  }&lt;br /&gt;
  static void printComponentType(Object array) {&lt;br /&gt;
    Class arrayClass = array.getClass();&lt;br /&gt;
    String arrayName = arrayClass.getName();&lt;br /&gt;
    Class componentClass = arrayClass.getComponentType();&lt;br /&gt;
    String componentName = componentClass.getName();&lt;br /&gt;
    System.out.println(&amp;quot;Array: &amp;quot; + arrayName + &amp;quot;, Component: &amp;quot;&lt;br /&gt;
        + componentName);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Array Reflection: get length ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/* From http://java.sun.ru/docs/books/tutorial/index.html */&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995-1998 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Permission to use, copy, modify, and distribute this software and its&lt;br /&gt;
 * documentation for NON-COMMERCIAL purposes and without fee is hereby granted&lt;br /&gt;
 * provided that this copyright notice appears in all copies. Please refer to&lt;br /&gt;
 * the file &amp;quot;copyright.html&amp;quot; for further important copyright and licensing&lt;br /&gt;
 * information.&lt;br /&gt;
 * &lt;br /&gt;
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE&lt;br /&gt;
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED&lt;br /&gt;
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR&lt;br /&gt;
 * NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY&lt;br /&gt;
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS&lt;br /&gt;
 * DERIVATIVES.&lt;br /&gt;
 */&lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
public class SampleGetArrayReflection {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    int[] sourceInts = { 12, 78 };&lt;br /&gt;
    int[] destInts = new int[2];&lt;br /&gt;
    copyArray(sourceInts, destInts);&lt;br /&gt;
    String[] sourceStrgs = { &amp;quot;Hello &amp;quot;, &amp;quot;there &amp;quot;, &amp;quot;everybody&amp;quot; };&lt;br /&gt;
    String[] destStrgs = new String[3];&lt;br /&gt;
    copyArray(sourceStrgs, destStrgs);&lt;br /&gt;
  }&lt;br /&gt;
  public static void copyArray(Object source, Object dest) {&lt;br /&gt;
    for (int i = 0; i &amp;lt; Array.getLength(source); i++) {&lt;br /&gt;
      Array.set(dest, i, Array.get(source, i));&lt;br /&gt;
      System.out.println(Array.get(dest, i));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Array Reflection: Multi Array Reflection ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/* From http://java.sun.ru/docs/books/tutorial/index.html */&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995-1998 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Permission to use, copy, modify, and distribute this software and its&lt;br /&gt;
 * documentation for NON-COMMERCIAL purposes and without fee is hereby granted&lt;br /&gt;
 * provided that this copyright notice appears in all copies. Please refer to&lt;br /&gt;
 * the file &amp;quot;copyright.html&amp;quot; for further important copyright and licensing&lt;br /&gt;
 * information.&lt;br /&gt;
 * &lt;br /&gt;
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE&lt;br /&gt;
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED&lt;br /&gt;
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR&lt;br /&gt;
 * NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY&lt;br /&gt;
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS&lt;br /&gt;
 * DERIVATIVES.&lt;br /&gt;
 */&lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
public class SampleMultiArrayReflection {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    // The oneDimA and oneDimB objects are one dimensional int arrays&lt;br /&gt;
    // with 5 elements.&lt;br /&gt;
    int[] dim1 = { 5 };&lt;br /&gt;
    int[] oneDimA = (int[]) Array.newInstance(int.class, dim1);&lt;br /&gt;
    int[] oneDimB = (int[]) Array.newInstance(int.class, 5);&lt;br /&gt;
    // The twoDimStr object is a 5 X 10 array of String objects.&lt;br /&gt;
    int[] dimStr = { 5, 10 };&lt;br /&gt;
    String[][] twoDimStr = (String[][]) Array.newInstance(String.class,&lt;br /&gt;
        dimStr);&lt;br /&gt;
    // The twoDimA object is an array of 12 int arrays. The tail&lt;br /&gt;
    // dimension is not defined. It is equivalent to the array&lt;br /&gt;
    // created as follows:&lt;br /&gt;
    //    int[][] ints = new int[12][];&lt;br /&gt;
    int[] dimA = { 12 };&lt;br /&gt;
    int[][] twoDimA = (int[][]) Array.newInstance(int[].class, dimA);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Array Reflection: name and type ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/* From http://java.sun.ru/docs/books/tutorial/index.html */&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995-1998 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Permission to use, copy, modify, and distribute this software and its&lt;br /&gt;
 * documentation for NON-COMMERCIAL purposes and without fee is hereby granted&lt;br /&gt;
 * provided that this copyright notice appears in all copies. Please refer to&lt;br /&gt;
 * the file &amp;quot;copyright.html&amp;quot; for further important copyright and licensing&lt;br /&gt;
 * information.&lt;br /&gt;
 * &lt;br /&gt;
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE&lt;br /&gt;
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED&lt;br /&gt;
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR&lt;br /&gt;
 * NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY&lt;br /&gt;
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS&lt;br /&gt;
 * DERIVATIVES.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.Button;&lt;br /&gt;
import java.awt.TextField;&lt;br /&gt;
import java.lang.reflect.Field;&lt;br /&gt;
public class SampleArrayReflection {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    KeyPad target = new KeyPad();&lt;br /&gt;
    printArrayNames(target);&lt;br /&gt;
  }&lt;br /&gt;
  static void printArrayNames(Object target) {&lt;br /&gt;
    Class targetClass = target.getClass();&lt;br /&gt;
    Field[] publicFields = targetClass.getFields();&lt;br /&gt;
    for (int i = 0; i &amp;lt; publicFields.length; i++) {&lt;br /&gt;
      String fieldName = publicFields[i].getName();&lt;br /&gt;
      Class typeClass = publicFields[i].getType();&lt;br /&gt;
      String fieldType = typeClass.getName();&lt;br /&gt;
      if (typeClass.isArray()) {&lt;br /&gt;
        System.out.println(&amp;quot;Name: &amp;quot; + fieldName + &amp;quot;, Type: &amp;quot;&lt;br /&gt;
            + fieldType);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class KeyPad {&lt;br /&gt;
  public boolean alive;&lt;br /&gt;
  public Button power;&lt;br /&gt;
  public Button[] letters;&lt;br /&gt;
  public int[] codes;&lt;br /&gt;
  public TextField[] rows;&lt;br /&gt;
  public boolean[] states;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Check if the given object is an array (primitve or native). ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.io.ByteArrayInputStream;&lt;br /&gt;
import java.io.ByteArrayOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.ObjectInputStream;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
/*&lt;br /&gt;
 * JBoss, Home of Professional Open Source&lt;br /&gt;
 * Copyright 2005, JBoss Inc., and individual contributors as indicated&lt;br /&gt;
 * by the @authors tag. See the copyright.txt in the distribution for a&lt;br /&gt;
 * full listing of individual contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * This is free software; you can redistribute it and/or modify it&lt;br /&gt;
 * under the terms of the GNU Lesser General Public License as&lt;br /&gt;
 * published by the Free Software Foundation; either version 2.1 of&lt;br /&gt;
 * the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This software is distributed in the hope that it will be useful,&lt;br /&gt;
 * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&lt;br /&gt;
 * Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
 * License along with this software; if not, write to the Free&lt;br /&gt;
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA&lt;br /&gt;
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.&lt;br /&gt;
 */&lt;br /&gt;
public class Main {&lt;br /&gt;
  &lt;br /&gt;
  /**&lt;br /&gt;
   * Check if the given object is an array (primitve or native).&lt;br /&gt;
   *&lt;br /&gt;
   * @param obj  Object to test.&lt;br /&gt;
   * @return     True of the object is an array.&lt;br /&gt;
   */&lt;br /&gt;
  public static boolean isArray(final Object obj) {&lt;br /&gt;
     if (obj != null)&lt;br /&gt;
        return obj.getClass().isArray();&lt;br /&gt;
     return false;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating an Array:  A 10x20 2-dimensional int array. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int[][] ints2 = (int[][]) Array.newInstance(int.class, new int[] { 10, 20 });&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating an Array: An array of 10 int-arrays. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int[][] ints2 = (int[][]) Array.newInstance(int[].class, 10);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating an Array: An array of 10 ints. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int[] ints = (int[]) Array.newInstance(int.class, 10);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Determining If an Object Is an Array ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    boolean b = &amp;quot;&amp;quot;.getClass().isArray();&lt;br /&gt;
    if (b) {&lt;br /&gt;
      System.out.println(&amp;quot;object is an array&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting and Setting the Value of an Element in an Array Object ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int[] array = { 1, 2, 3 };&lt;br /&gt;
    // Get the value of the third element.&lt;br /&gt;
    Object o = Array.get(array, 2);&lt;br /&gt;
    // Set the value of the third element.&lt;br /&gt;
    Array.set(array, 2, 1);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting the Component Type of an Array Object ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Object o = new int[1][2][3];&lt;br /&gt;
    o.getClass().getComponentType();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting the Length and Dimensions of an Array Object ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Object o = new int[1][2][3];&lt;br /&gt;
    int len = Array.getLength(o); // 1&lt;br /&gt;
    System.out.println(len);&lt;br /&gt;
    int dim = getDim(o); // 3&lt;br /&gt;
    System.out.println(dim);&lt;br /&gt;
  }&lt;br /&gt;
  public static int getDim(Object array) {&lt;br /&gt;
    int dim = 0;&lt;br /&gt;
    Class cls = array.getClass();&lt;br /&gt;
    while (cls.isArray()) {&lt;br /&gt;
      dim++;&lt;br /&gt;
      cls = cls.getComponentType();&lt;br /&gt;
    }&lt;br /&gt;
    return dim;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== return an Object array for the given object. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
/*&lt;br /&gt;
 * JBoss, Home of Professional Open Source&lt;br /&gt;
 * Copyright 2005, JBoss Inc., and individual contributors as indicated&lt;br /&gt;
 * by the @authors tag. See the copyright.txt in the distribution for a&lt;br /&gt;
 * full listing of individual contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * This is free software; you can redistribute it and/or modify it&lt;br /&gt;
 * under the terms of the GNU Lesser General Public License as&lt;br /&gt;
 * published by the Free Software Foundation; either version 2.1 of&lt;br /&gt;
 * the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This software is distributed in the hope that it will be useful,&lt;br /&gt;
 * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&lt;br /&gt;
 * Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
 * License along with this software; if not, write to the Free&lt;br /&gt;
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA&lt;br /&gt;
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.&lt;br /&gt;
 */&lt;br /&gt;
public class Main {&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * @return an Object array for the given object.&lt;br /&gt;
   *&lt;br /&gt;
   * @param obj  Object to convert to an array.  Converts primitive&lt;br /&gt;
   *             arrays to Object arrays consisting of their wrapper&lt;br /&gt;
   *             classes.  If the object is not an array (object or primitve)&lt;br /&gt;
   *             then a new array of the given type is created and the&lt;br /&gt;
   *             object is set as the sole element.&lt;br /&gt;
   */&lt;br /&gt;
  public static Object[] toArray(final Object obj) {&lt;br /&gt;
     // if the object is an array, the cast and return it.&lt;br /&gt;
     if (obj instanceof Object[]) {&lt;br /&gt;
        return (Object[])obj;&lt;br /&gt;
     }&lt;br /&gt;
     // if the object is an array of primitives then wrap the array&lt;br /&gt;
     Class type = obj.getClass();&lt;br /&gt;
     Object array; &lt;br /&gt;
     if (type.isArray()) {&lt;br /&gt;
        int length = Array.getLength(obj);&lt;br /&gt;
        Class componentType = type.getComponentType();&lt;br /&gt;
        array = Array.newInstance(componentType, length);&lt;br /&gt;
        for (int i=0; i&amp;lt;length; i++) {&lt;br /&gt;
           Array.set(array, i, Array.get(obj, i));&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
     else {&lt;br /&gt;
        array = Array.newInstance(type, 1);&lt;br /&gt;
        Array.set(array, 0, obj);&lt;br /&gt;
     }&lt;br /&gt;
     return (Object[])array;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using reflection to check array type and length ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    String data[] = new String[3];&lt;br /&gt;
    data[0] = &amp;quot;Java&amp;quot;;&lt;br /&gt;
    printType(data);&lt;br /&gt;
  }&lt;br /&gt;
  private static void printType(Object object) {&lt;br /&gt;
    Class type = object.getClass();&lt;br /&gt;
    if (type.isArray()) {&lt;br /&gt;
      Class dataType = type.getComponentType();&lt;br /&gt;
      System.out.println(&amp;quot;Array of: &amp;quot; + dataType);&lt;br /&gt;
      System.out.println(&amp;quot; Length: &amp;quot; + Array.getLength(object));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using reflection to create, fill, and display an array ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.lang.reflect.Array;&lt;br /&gt;
import java.util.Random;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Object array = Array.newInstance(int.class, 3);&lt;br /&gt;
    printType(array);&lt;br /&gt;
    fillArray(array);&lt;br /&gt;
    displayArray(array);&lt;br /&gt;
  }&lt;br /&gt;
  private static void printType(Object object) {&lt;br /&gt;
    Class type = object.getClass();&lt;br /&gt;
    if (type.isArray()) {&lt;br /&gt;
      Class elementType = type.getComponentType();&lt;br /&gt;
      System.out.println(&amp;quot;Array of: &amp;quot; + elementType);&lt;br /&gt;
      System.out.println(&amp;quot;Array size: &amp;quot; + Array.getLength(object));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private static void fillArray(Object array) {&lt;br /&gt;
    int length = Array.getLength(array);&lt;br /&gt;
    Random generator = new Random(System.currentTimeMillis());&lt;br /&gt;
    for (int i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
      int random = generator.nextInt();&lt;br /&gt;
      Array.setInt(array, i, random);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private static void displayArray(Object array) {&lt;br /&gt;
    int length = Array.getLength(array);&lt;br /&gt;
    for (int i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
      int value = Array.getInt(array, i);&lt;br /&gt;
      System.out.println(&amp;quot;Position: &amp;quot; + i + &amp;quot;, value: &amp;quot; + value);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>