Object Reflection: set value





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



public class SampleSet {



  public static void main(String[] args) {

    Rectangle r = new Rectangle(10020);

    System.out.println("original: " + r.toString());

    modifyWidth(r, new Integer(300));

    System.out.println("modified: " + r.toString());

  }



  static void modifyWidth(Rectangle r, Integer widthParam) {

    Field widthField;

    Integer widthValue;

    Class c = r.getClass();

    try {

      widthField = c.getField("width");

      widthField.set(r, widthParam);

    catch (NoSuchFieldException e) {

      System.out.println(e);

    catch (IllegalAccessException e) {

      System.out.println(e);

    }

  }

}

           

       

Tags: , , , , , ,

Leave a Reply