field.java
来自「JAVA基本类源代码,大家可以学习学习!」· Java 代码 · 共 843 行 · 第 1/3 页
JAVA
843 行
return getFieldAccessor(obj).getByte(obj); } /** * Gets the value of a static or instance field of type * <code>char</code> or of another primitive type convertible to * type <code>char</code> via a widening conversion. * * @param obj the object to extract the <code>char</code> value * from * @return the value of the field converted to type <code>char</code> * * @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 <code>char</code> 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 getFieldAccessor(obj).getChar(obj); } /** * Gets the value of a static or instance field of type * <code>short</code> or of another primitive type convertible to * type <code>short</code> via a widening conversion. * * @param obj the object to extract the <code>short</code> value * from * @return the value of the field converted to type <code>short</code> * * @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 <code>short</code> 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 getFieldAccessor(obj).getShort(obj); } /** * Gets the value of a static or instance field of type * <code>int</code> or of another primitive type convertible to * type <code>int</code> via a widening conversion. * * @param obj the object to extract the <code>int</code> value * from * @return the value of the field converted to type <code>int</code> * * @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 <code>int</code> 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 getFieldAccessor(obj).getInt(obj); } /** * Gets the value of a static or instance field of type * <code>long</code> or of another primitive type convertible to * type <code>long</code> via a widening conversion. * * @param obj the object to extract the <code>long</code> value * from * @return the value of the field converted to type <code>long</code> * * @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 <code>long</code> 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 getFieldAccessor(obj).getLong(obj); } /** * Gets the value of a static or instance field of type * <code>float</code> or of another primitive type convertible to * type <code>float</code> via a widening conversion. * * @param obj the object to extract the <code>float</code> value * from * @return the value of the field converted to type <code>float</code> * * @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 <code>float</code> 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 getFieldAccessor(obj).getFloat(obj); } /** * Gets the value of a static or instance field of type * <code>double</code> or of another primitive type convertible to * type <code>double</code> via a widening conversion. * * @param obj the object to extract the <code>double</code> value * from * @return the value of the field converted to type <code>double</code> * * @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 <code>double</code> 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 getFieldAccessor(obj).getDouble(obj); } /** * Sets the field represented by this <code>Field</code> 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. * * <p>The operation proceeds as follows: * * <p>If the underlying field is static, the <code>obj</code> argument is * ignored; it may be null. * * <p>Otherwise the underlying field is an instance field. If the * specified object argument is null, the method throws a * <code>NullPointerException</code>. If the specified object argument is not * an instance of the class or interface declaring the underlying * field, the method throws an <code>IllegalArgumentException</code>. * * <p>If this <code>Field</code> object enforces Java language access control, and * the underlying field is inaccessible, the method throws an * <code>IllegalAccessException</code>. * * <p>If the underlying field is final, the method throws an * <code>IllegalAccessException</code>. * * <p>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 * <code>IllegalArgumentException</code>. * * <p>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 * <code>IllegalArgumentException</code>. * * <p>If the underlying field is static, the class that declared the * field is initialized if it has not already been initialized. * * <p>The field is set to the possibly unwrapped and widened new value. * * <p>If the field is hidden in the type of <code>obj</code>, * 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 <code>obj</code> * 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 { getFieldAccessor(obj).set(obj, value); } /** * Sets the value of a field as a <code>boolean</code> on the specified object. * This method is equivalent to * <code>set(obj, zObj)</code>, * where <code>zObj</code> is a <code>Boolean</code> object and * <code>zObj.booleanValue() == z</code>. * * @param obj the object whose field should be modified * @param z the new value for the field of <code>obj</code> * 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 { getFieldAccessor(obj).setBoolean(obj, z); } /** * Sets the value of a field as a <code>byte</code> on the specified object. * This method is equivalent to * <code>set(obj, bObj)</code>, * where <code>bObj</code> is a <code>Byte</code> object and * <code>bObj.byteValue() == b</code>. * * @param obj the object whose field should be modified * @param b the new value for the field of <code>obj</code> * being modified * * @exception IllegalAccessException if the underlying field
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?