How to set public field objects : Field « Reflection « Java






How to set public field objects

       
/*
Before: [a=21.25, b=54.5, c=5665, d=2043, e=3121, f=1019]
After: [a=21.25, b=54.5, c=0, d=0, e=3121, f=1019]
*/


/*
 *
 * This software is granted under the terms of the Common Public License,
 * CPL, which may be found at the following URL:
 * http://www-124.ibm.com/developerworks/oss/CPLv1.0.htm
 *
 * Copyright(c) 2003-2005 by the authors indicated in the @author tags.
 * All Rights are Reserved by the various authors.
 *
########## DO NOT EDIT ABOVE THIS LINE ########## */

import java.lang.reflect.Field;

/**  
 * Demonstrates how to set public field objects.
 *
 * @author <a href=mailto:kraythe@arcor.de>Robert Simmons jr. (kraythe)</a>
 * @version $Revision: 1.3 $
 */
public class FieldModification {
  /** 
   * Sets all int fields in an object to 0.
   *
   * @param obj The object to operate on.
   *
   * @throws RuntimeException If there is a reflection problem.
   */
  public static void initPublicIntFields(final Object obj) {
    try {
      Field[] fields = obj.getClass()
                        .getFields();
      for (int idx = 0; idx < fields.length; idx++) {
        if (fields[idx].getType() == int.class) {
          fields[idx].setInt(obj, 0);
        }
      }
    } catch (final IllegalAccessException ex) {
      throw new RuntimeException(ex);
    }
  }

  /** 
   * Sets all int fields in an object to 0.
   *
   * @param obj The object to operate on.
   *
   * @throws RuntimeException If there is a reflection problem.
   */
  public static void initPublicIntFields2(final Object obj) {
    try {
      final Integer value = new Integer(0);
      Field[] fields = obj.getClass()
                        .getFields();
      for (int idx = 0; idx < fields.length; idx++) {
        if (fields[idx].getType() == int.class) {
          fields[idx].set(obj, value);
        }
      }
    } catch (final IllegalAccessException ex) {
      throw new RuntimeException(ex);
    }
  }

  /** 
   * Demo Method.
   *
   * @param args Command line arguments.
   */
  public static final void main(final String[] args) {
    SomeNumbers value = new SomeNumbers();
    System.out.println("Before: " + value);
    initPublicIntFields(value);
    System.out.println("After: " + value);
  }
}


class SomeNumbers {
  /** A demo double. */
  public double a = 21.25d;

  /** A demo float. */
  public float b = 54.5f;

  /** A Demo int */
  public int c = 5665;

  /** Another demo int. */
  public int d = 2043;

  /** Another demo int. */
  protected int e = 3121;

  /** Another demo int. */
  private int f = 1019;

  /** 
   * @see java.lang.Object#toString()
   */
  public String toString() {
    return new String("[a=" + a + ", b=" + b + ", c=" + c + ", d=" + d + ", e=" + e
                      + ", f=" + f + "]");
  }
}



           
         
    
    
    
    
    
    
  








Related examples in the same category

1.Field Reflection
2.Class Reflection: field informationClass Reflection: field information
3.Object Reflection: get field valueObject Reflection: get field value
4.Object Reflection: set valueObject Reflection: set value
5.Get field of a class object and set or get its value
6.All Fields Snippet
7.Field modifiers: isSynthetic, isEnumConstant
8.Field with annotations
9.Set private field value
10.Get fields of a class object
11.Get all object accessible public fields
12.Getting the Field Objects of a Class Object: By obtaining a list of all declared fields.
13.Getting the Field Objects of a Class Object: By obtaining a list of all public fields, both declared and inherited.
14.Getting the Field Objects of a Class Object: By obtaining a particular Field object.
15.Get all declared fields from a class
16.Retrieving a Predefined Color by Name
17.Get a variable value from the variable name
18.Fetches all fields of all access types from the supplied class and super classes
19.Checks whether the specified class contains a field matching the specified name.
20.whether given field is a "public static final" constant
21.Process bean properties getter by applying the JavaBean naming conventions.
22.Fetches the property descriptor for the named property of the supplied class
23.Find Field
24.Return a list of all fields (whatever access status, and on whatever superclass they were defined) that can be found on this class.
25.Get all fields of a class.
26.Find field 2
27.Get class field/property
28.Accessible Field Iterator
29.Adds all Fields (from Class.getFields) to the list
30.Retrieve a value from a property
31.Set the value of the field of the object to the given value.
32.Fast Property accessor for a single class.