All Downloads are FREE. Search and download functionalities are using the official Maven repository.

java.lang.reflect.Field Maven / Gradle / Ivy

/*

This is not an official specification document, and usage is restricted.

NOTICE


(c) 2005-2007 Sun Microsystems, Inc. All Rights Reserved.

Neither this file nor any files generated from it describe a complete specification, and they may only be used as described below. For example, no permission is given for you to incorporate this file, in whole or in part, in an implementation of a Java specification.

Sun Microsystems Inc. owns the copyright in this file and it is provided to you for informative, as opposed to normative, use. The file and any files generated from it may be used to generate other informative documentation, such as a unified set of documents of API signatures for a platform that includes technologies expressed as Java APIs. The file may also be used to produce "compilation stubs," which allow applications to be compiled and validated for such platforms.

Any work generated from this file, such as unified javadocs or compiled stub files, must be accompanied by this notice in its entirety.

This work corresponds to the API signatures of JSR 219: Foundation Profile 1.1. In the event of a discrepency between this work and the JSR 219 specification, which is available at http://www.jcp.org/en/jsr/detail?id=219, the latter takes precedence. */ package java.lang.reflect; /** * A Field provides information about, and dynamic access to, a * single field of a class or an interface. The reflected field may * be a class (static) field or an instance field. * *

A Field permits widening conversions to occur during a get or * set access operation, but throws an IllegalArgumentException if a * narrowing conversion would occur. * * @see Member * @see java.lang.Class * @see java.lang.Class#getFields() * @see java.lang.Class#getField(String) * @see java.lang.Class#getDeclaredFields() * @see java.lang.Class#getDeclaredField(String) * * @author Nakul Saraiya */ public final class Field extends AccessibleObject implements Member { /* * This hidden constructor does not necessarily correspond to * a constructor in the original source file -- it keeps javadoc * from generating an inappropriate default constructor. */ private Field() { } /** * Returns the Class object representing the class or interface * that declares the field represented by this Field object. */ public Class getDeclaringClass() { return null; } /** * Returns the name of the field represented by this Field object. */ public String getName() { return null; } /** * Returns the Java language modifiers for the field represented * by this Field object, as an integer. The Modifier class should * be used to decode the modifiers. * * @see Modifier */ public int getModifiers() { return 0; } /** * Returns a Class object that identifies the * declared type for the field represented by this * Field object. * * @return a Class object identifying the declared * type of the field represented by this object */ public Class getType() { return null; } /** * Compares this Field against the specified object. Returns * true if the objects are the same. Two Field objects are the same if * they were declared by the same class and have the same name * and type. */ public boolean equals(Object obj) { return false; } /** * Returns a hashcode for this Field. This is computed as the * exclusive-or of the hashcodes for the underlying field's * declaring class name and its name. */ public int hashCode() { return 0; } /** * Returns a string describing this Field. The format is * the access modifiers for the field, if any, followed * by the field type, followed by a space, followed by * the fully-qualified name of the class declaring the field, * followed by a period, followed by the name of the field. * For example: *

     *    public static final int java.lang.Thread.MIN_PRIORITY
     *    private int java.io.FileDescriptor.fd
     * 
* *

The modifiers are placed in canonical order as specified by * "The Java Language Specification". This is public, * protected or private first, and then other * modifiers in the following order: static, final, * transient, volatile. */ public String toString() { return null; } /** * Returns the value of the field represented by this Field, on * the specified object. The value is automatically wrapped in an * object if it has a primitive type. * *

The underlying field's value is obtained as follows: * *

If the underlying field is a static field, the obj argument * is ignored; it may be null. * *

Otherwise, the underlying field is an instance field. If the * specified obj argument is null, the method throws a * NullPointerException. If the specified object is not an * instance of the class or interface declaring the underlying * field, the method throws an IllegalArgumentException. * *

If this Field object enforces Java language access control, and * the underlying field is inaccessible, the method throws an * IllegalAccessException. * If the underlying field is static, the class that declared the * field is initialized if it has not already been initialized. * *

Otherwise, the value is retrieved from the underlying instance * or static field. If the field has a primitive type, the value * is wrapped in an object before being returned, otherwise it is * returned as is. * *

If the field is hidden in the type of obj, * the field's value is obtained according to the preceding rules. * * @param obj object from which the represented field's value is * to be extracted * @return the value of the represented field in object * obj; primitive values are wrapped in an appropriate * object before being returned * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof). * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. */ public Object get(Object obj) throws IllegalArgumentException, IllegalAccessException { return null; } /** * Gets the value of a static or instance boolean field. * * @param obj the object to extract the boolean value * from * @return the value of the boolean field * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not * an instance of the class or interface declaring the * underlying field (or a subclass or implementor * thereof), or if the field value cannot be * converted to the type boolean by a * widening conversion. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#get */ public boolean getBoolean(Object obj) throws IllegalArgumentException, IllegalAccessException { return false; } /** * Gets the value of a static or instance byte field. * * @param obj the object to extract the byte value * from * @return the value of the byte field * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not * an instance of the class or interface declaring the * underlying field (or a subclass or implementor * thereof), or if the field value cannot be * converted to the type byte by a * widening conversion. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#get */ public byte getByte(Object obj) throws IllegalArgumentException, IllegalAccessException { return ' '; } /** * Gets the value of a static or instance field of type * char or of another primitive type convertible to * type char via a widening conversion. * * @param obj the object to extract the char value * from * @return the value of the field converted to type char * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not * an instance of the class or interface declaring the * underlying field (or a subclass or implementor * thereof), or if the field value cannot be * converted to the type char by a * widening conversion. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#get */ public char getChar(Object obj) throws IllegalArgumentException, IllegalAccessException { return ' '; } /** * Gets the value of a static or instance field of type * short or of another primitive type convertible to * type short via a widening conversion. * * @param obj the object to extract the short value * from * @return the value of the field converted to type short * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not * an instance of the class or interface declaring the * underlying field (or a subclass or implementor * thereof), or if the field value cannot be * converted to the type short by a * widening conversion. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#get */ public short getShort(Object obj) throws IllegalArgumentException, IllegalAccessException { return -1; } /** * Gets the value of a static or instance field of type * int or of another primitive type convertible to * type int via a widening conversion. * * @param obj the object to extract the int value * from * @return the value of the field converted to type int * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not * an instance of the class or interface declaring the * underlying field (or a subclass or implementor * thereof), or if the field value cannot be * converted to the type int by a * widening conversion. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#get */ public int getInt(Object obj) throws IllegalArgumentException, IllegalAccessException { return 0; } /** * Gets the value of a static or instance field of type * long or of another primitive type convertible to * type long via a widening conversion. * * @param obj the object to extract the long value * from * @return the value of the field converted to type long * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not * an instance of the class or interface declaring the * underlying field (or a subclass or implementor * thereof), or if the field value cannot be * converted to the type long by a * widening conversion. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#get */ public long getLong(Object obj) throws IllegalArgumentException, IllegalAccessException { return -1; } /** * Gets the value of a static or instance field of type * float or of another primitive type convertible to * type float via a widening conversion. * * @param obj the object to extract the float value * from * @return the value of the field converted to type float * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not * an instance of the class or interface declaring the * underlying field (or a subclass or implementor * thereof), or if the field value cannot be * converted to the type float by a * widening conversion. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#get */ public float getFloat(Object obj) throws IllegalArgumentException, IllegalAccessException { return 0.0f; } /** * Gets the value of a static or instance field of type * double or of another primitive type convertible to * type double via a widening conversion. * * @param obj the object to extract the double value * from * @return the value of the field converted to type double * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not * an instance of the class or interface declaring the * underlying field (or a subclass or implementor * thereof), or if the field value cannot be * converted to the type double by a * widening conversion. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#get */ public double getDouble(Object obj) throws IllegalArgumentException, IllegalAccessException { return 0.0d; } /** * Sets the field represented by this Field object on the * specified object argument to the specified new value. The new * value is automatically unwrapped if the underlying field has a * primitive type. * *

The operation proceeds as follows: * *

If the underlying field is static, the obj argument is * ignored; it may be null. * *

Otherwise the underlying field is an instance field. If the * specified object argument is null, the method throws a * NullPointerException. If the specified object argument is not * an instance of the class or interface declaring the underlying * field, the method throws an IllegalArgumentException. * *

If this Field object enforces Java language access control, and * the underlying field is inaccessible, the method throws an * IllegalAccessException. * *

If the underlying field is final, the method throws an * IllegalAccessException. * *

If the underlying field is of a primitive type, an unwrapping * conversion is attempted to convert the new value to a value of * a primitive type. If this attempt fails, the method throws an * IllegalArgumentException. * *

If, after possible unwrapping, the new value cannot be * converted to the type of the underlying field by an identity or * widening conversion, the method throws an * IllegalArgumentException. * *

If the underlying field is static, the class that declared the * field is initialized if it has not already been initialized. * *

The field is set to the possibly unwrapped and widened new value. * *

If the field is hidden in the type of obj, * the field's value is set according to the preceding rules. * * @param obj the object whose field should be modified * @param value the new value for the field of obj * being modified * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof), * or if an unwrapping conversion fails. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. */ public void set(Object obj, Object value) throws IllegalArgumentException, IllegalAccessException { } /** * Sets the value of a field as a boolean on the specified object. * This method is equivalent to * set(obj, zObj), * where zObj is a Boolean object and * zObj.booleanValue() == z. * * @param obj the object whose field should be modified * @param z the new value for the field of obj * being modified * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof), * or if an unwrapping conversion fails. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#set */ public void setBoolean(Object obj, boolean z) throws IllegalArgumentException, IllegalAccessException { } /** * Sets the value of a field as a byte on the specified object. * This method is equivalent to * set(obj, bObj), * where bObj is a Byte object and * bObj.byteValue() == b. * * @param obj the object whose field should be modified * @param b the new value for the field of obj * being modified * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof), * or if an unwrapping conversion fails. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#set */ public void setByte(Object obj, byte b) throws IllegalArgumentException, IllegalAccessException { } /** * Sets the value of a field as a char on the specified object. * This method is equivalent to * set(obj, cObj), * where cObj is a Character object and * cObj.charValue() == c. * * @param obj the object whose field should be modified * @param c the new value for the field of obj * being modified * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof), * or if an unwrapping conversion fails. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#set */ public void setChar(Object obj, char c) throws IllegalArgumentException, IllegalAccessException { } /** * Sets the value of a field as a short on the specified object. * This method is equivalent to * set(obj, sObj), * where sObj is a Short object and * sObj.shortValue() == s. * * @param obj the object whose field should be modified * @param s the new value for the field of obj * being modified * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof), * or if an unwrapping conversion fails. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#set */ public void setShort(Object obj, short s) throws IllegalArgumentException, IllegalAccessException { } /** * Sets the value of a field as an int on the specified object. * This method is equivalent to * set(obj, iObj), * where iObj is a Integer object and * iObj.intValue() == i. * * @param obj the object whose field should be modified * @param i the new value for the field of obj * being modified * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof), * or if an unwrapping conversion fails. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#set */ public void setInt(Object obj, int i) throws IllegalArgumentException, IllegalAccessException { } /** * Sets the value of a field as a long on the specified object. * This method is equivalent to * set(obj, lObj), * where lObj is a Long object and * lObj.longValue() == l. * * @param obj the object whose field should be modified * @param l the new value for the field of obj * being modified * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof), * or if an unwrapping conversion fails. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#set */ public void setLong(Object obj, long l) throws IllegalArgumentException, IllegalAccessException { } /** * Sets the value of a field as a float on the specified object. * This method is equivalent to * set(obj, fObj), * where fObj is a Float object and * fObj.floatValue() == f. * * @param obj the object whose field should be modified * @param f the new value for the field of obj * being modified * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof), * or if an unwrapping conversion fails. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#set */ public void setFloat(Object obj, float f) throws IllegalArgumentException, IllegalAccessException { } /** * Sets the value of a field as a double on the specified object. * This method is equivalent to * set(obj, dObj), * where dObj is a Double object and * dObj.doubleValue() == d. * * @param obj the object whose field should be modified * @param d the new value for the field of obj * being modified * * @exception IllegalAccessException if the underlying field * is inaccessible. * @exception IllegalArgumentException if the specified object is not an * instance of the class or interface declaring the underlying * field (or a subclass or implementor thereof), * or if an unwrapping conversion fails. * @exception NullPointerException if the specified object is null * and the field is an instance field. * @exception ExceptionInInitializerError if the initialization provoked * by this method fails. * @see Field#set */ public void setDouble(Object obj, double d) throws IllegalArgumentException, IllegalAccessException { } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy