Create new Multi dimensional Array with Reflection in Java

Description

The following code shows how to creatre new Multi dimensional Array with Reflection.

Example


//from   w  ww.j  av a 2s . c o  m
import java.lang.reflect.Array;
import java.util.Arrays;

public class Main {

  public static void main(String[] args) {

    // The oneDimA and oneDimB objects are one dimensional int arrays
    // with 5 elements.

    int[] dim1 = { 5 };
    int[] oneDimA = (int[]) Array.newInstance(int.class, dim1);
    int[] oneDimB = (int[]) Array.newInstance(int.class, 5);
        
    System.out.println(Arrays.toString(oneDimA));
    System.out.println(Arrays.toString(oneDimB));
    
    // The twoDimStr object is a 5 X 10 array of String objects.

    int[] dimStr = { 5, 10 };
    String[][] twoDimStr = (String[][]) Array.newInstance(String.class,
        dimStr);

    System.out.println(Arrays.toString(twoDimStr));
    
    // The twoDimA object is an array of 12 int arrays. The tail
    // dimension is not defined. It is equivalent to the array
    // created as follows:
    //    int[][] ints = new int[12][];

    int[] dimA = { 12 };
    int[][] twoDimA = (int[][]) Array.newInstance(int[].class, dimA);
    System.out.println(Arrays.toString(twoDimA));
  }
}
/*
 * Copyright (c) 1995-1998 Sun Microsystems, Inc. All Rights Reserved.
 * 
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for NON-COMMERCIAL purposes and without fee is hereby granted
 * provided that this copyright notice appears in all copies. Please refer to
 * the file "copyright.html" for further important copyright and licensing
 * information.
 * 
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
 * NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
 * DERIVATIVES.
 */

The code above generates the following result.





















Home »
  Java Tutorial »
    Reflection »




Annotation
Array
Class
Constructor
Field
Generics
Interface
Method
Modifier
Package
Proxy