Source Code : This program demonstrates the use of reflection for manipulating arrays

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

This program demonstrates the use of reflection for manipulating arrays

This program demonstrates the use of reflection for manipulating arrays
 
/*
 This program is a part of the companion code for Core Java 8th ed.
 (http://horstmann.com/corejava)

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.lang.reflect.Array;

/**
 * This program demonstrates the use of reflection for manipulating arrays.
 * 
 * @version 1.01 2004-02-21
 * @author Cay Horstmann
 */
public class ArrayGrowTest {
  public static void main(String[] args) {
    int[] a = { 1, 2, 3 };
    a = (int[]) goodArrayGrow(a);
    arrayPrint(a);

    String[] b = { "Tom", "Dick", "Harry" };
    b = (String[]) goodArrayGrow(b);
    arrayPrint(b);

    System.out.println("The following call will generate an exception.");
    b = (String[]) badArrayGrow(b);
  }

  /**
   * This method attempts to grow an array by allocating a new array and copying
   * all elements.
   * 
   * @param a
   *          the array to grow
   * @return a larger array that contains all elements of a. However, the
   *         returned array has type Object[], not the same type as a
   */
  static Object[] badArrayGrow(Object[] a) {
    int newLength = a.length * 11 / 10 + 10;
    Object[] newArray = new Object[newLength];
    System.arraycopy(a, 0, newArray, 0, a.length);
    return newArray;
  }

  /**
   * This method grows an array by allocating a new array of the same type and
   * copying all elements.
   * 
   * @param a
   *          the array to grow. This can be an object array or a primitive type
   *          array
   * @return a larger array that contains all elements of a.
   */
  static Object goodArrayGrow(Object a) {
    Class cl = a.getClass();
    if (!cl.isArray())
      return null;
    Class componentType = cl.getComponentType();
    int length = Array.getLength(a);
    int newLength = length * 11 / 10 + 10;

    Object newArray = Array.newInstance(componentType, newLength);
    System.arraycopy(a, 0, newArray, 0, length);
    return newArray;
  }

  /**
   * A convenience method to print all elements in an array
   * 
   * @param a
   *          the array to print. It can be an object array or a primitive type
   *          array
   */
  static void arrayPrint(Object a) {
    Class cl = a.getClass();
    if (!cl.isArray())
      return;
    Class componentType = cl.getComponentType();
    int length = Array.getLength(a);
    System.out.print(componentType.getName() + "[" + length + "] = { ");
    for (int i = 0; i < Array.getLength(a); i++)
      System.out.print(Array.get(a, i) + " ");
    System.out.println("}");
  }
}

   
  

Thank with us