Set private field value : Field « Reflection « Java






Set private field value

       
/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

import java.lang.reflect.Field;

public class FieldTroubleToo {
  public final boolean b = true;

  public static void main(String... args) {
    FieldTroubleToo ft = new FieldTroubleToo();
    try {
      Class<?> c = ft.getClass();
      Field f = c.getDeclaredField("b");
      // f.setAccessible(true); // solution
      f.setBoolean(ft, Boolean.FALSE); // IllegalAccessException

      // production code should handle these exceptions more gracefully
    } catch (NoSuchFieldException x) {
      x.printStackTrace();
    } catch (IllegalArgumentException x) {
      x.printStackTrace();
    } catch (IllegalAccessException x) {
      x.printStackTrace();
    }
  }
}

   
    
    
    
    
    
    
  








Related examples in the same category

1.Field Reflection
2.How to set public field objects
3.Class Reflection: field informationClass Reflection: field information
4.Object Reflection: get field valueObject Reflection: get field value
5.Object Reflection: set valueObject Reflection: set value
6.Get field of a class object and set or get its value
7.All Fields Snippet
8.Field modifiers: isSynthetic, isEnumConstant
9.Field with annotations
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.