Object Reflection: invoke constructor with parameters : Constructor « Reflection « Java






Object Reflection: invoke constructor with parameters

Object Reflection: invoke constructor with parameters
   
/* From http://java.sun.com/docs/books/tutorial/index.html */

/*
 * 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.
 */

import java.awt.Rectangle;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class SampleInstance {

  public static void main(String[] args) {

    Rectangle rectangle;
    Class rectangleDefinition;
    Class[] intArgsClass = new Class[] { int.class, int.class };
    Integer height = new Integer(12);
    Integer width = new Integer(34);
    Object[] intArgs = new Object[] { height, width };
    Constructor intArgsConstructor;

    try {
      rectangleDefinition = Class.forName("java.awt.Rectangle");
      intArgsConstructor = rectangleDefinition
          .getConstructor(intArgsClass);
      rectangle = (Rectangle) createObject(intArgsConstructor, intArgs);
    } catch (ClassNotFoundException e) {
      System.out.println(e);
    } catch (NoSuchMethodException e) {
      System.out.println(e);
    }
  }

  public static Object createObject(Constructor constructor,
      Object[] arguments) {

    System.out.println("Constructor: " + constructor.toString());
    Object object = null;

    try {
      object = constructor.newInstance(arguments);
      System.out.println("Object: " + object.toString());
      return object;
    } catch (InstantiationException e) {
      System.out.println(e);
    } catch (IllegalAccessException e) {
      System.out.println(e);
    } catch (IllegalArgumentException e) {
      System.out.println(e);
    } catch (InvocationTargetException e) {
      System.out.println(e);
    }
    return object;
  }
}
           
         
    
    
  








Related examples in the same category

1.Constructor ReflectionConstructor Reflection
2.Creating an Object Using a Constructor Object
3.Class Reflection: find out the constructor informationClass Reflection: find out the constructor information
4.Get constructors of a class object
5.Create object using Constructor object
6.Getting a Constructor of a Class Object: By obtaining a list of all Constructors object
7.Getting a Constructor of a Class Object: By obtaining a particular Constructor object.
8.Passing a parameter to the constructor and calling a method dynamically
9.Has Declared Constructor
10.Get all construtors from a class
11.Gets an array of all Constructor calls for the given class
12.Adds all Constructor (from Class.getConstructorCalls) to the list
13.Convert the constructor to a Java Code String (arguments are replaced by the simple types)