Package javassist.bytecode

# Class FieldInfo

java.lang.Object
javassist.bytecode.FieldInfo

public final class FieldInfo extends Object
`field_info` structure.

The following code adds a public field `width` of `int` type:

>      ClassFile cf = ...
>      FieldInfo f = new FieldInfo(cf.getConstPool(), "width", "I");
>      f.setAccessFlags(AccessFlag.PUBLIC);
>      cf.addField(f);

See Also:
  - `CtField.getFieldInfo()`

## Constructor Summary

Constructors
Constructor
Description
`FieldInfo(ConstPool cp, String fieldName, String desc)`
Constructs a `field_info` structure.

## Method Summary

Modifier and Type
Method
Description
`void`
`addAttribute(AttributeInfo info)`
Appends an attribute.
`int`
`getAccessFlags()`
Returns the access flags.
`AttributeInfo`
`getAttribute(String name)`
Returns the attribute with the specified name.
`List<AttributeInfo>`
`getAttributes()`
Returns all the attributes.
`int`
`getConstantValue()`
Finds a ConstantValue attribute and returns the index into the `constant_pool` table.
`ConstPool`
`getConstPool()`
Returns the constant pool table used by this `field_info`.
`String`
`getDescriptor()`
Returns the field descriptor.
`String`
`getName()`
Returns the field name.
`AttributeInfo`
`removeAttribute(String name)`
Removes an attribute with the specified name.
`void`
`setAccessFlags(int acc)`
Sets the access flags.
`void`
`setDescriptor(String desc)`
Sets the field descriptor.
`void`
`setName(String newName)`
Sets the field name.
`String`
`toString()`
Returns a string representation of the object.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### FieldInfo

public FieldInfo(ConstPool cp, String fieldName, String desc)
Constructs a `field_info` structure.

Parameters:
  `cp` - a constant pool table
  `fieldName` - field name
  `desc` - field descriptor
See Also:
  - `Descriptor`

## Method Details

### toString

public String toString()
Returns a string representation of the object.

Overrides:
  `toString` in class `Object`

### getConstPool

public ConstPool getConstPool()
Returns the constant pool table used by this `field_info`.

### getName

public String getName()
Returns the field name.

### setName

public void setName(String newName)
Sets the field name.

### getAccessFlags

public int getAccessFlags()
Returns the access flags.

See Also:
  - `AccessFlag`

### setAccessFlags

public void setAccessFlags(int acc)
Sets the access flags.

See Also:
  - `AccessFlag`

### getDescriptor

public String getDescriptor()
Returns the field descriptor.

See Also:
  - `Descriptor`

### setDescriptor

public void setDescriptor(String desc)
Sets the field descriptor.

See Also:
  - `Descriptor`

### getConstantValue

public int getConstantValue()
Finds a ConstantValue attribute and returns the index into the `constant_pool` table.

Returns:
  0 if a ConstantValue attribute is not found.

### getAttributes

public List<AttributeInfo> getAttributes()
Returns all the attributes. The returned `List` object is shared with this object. If you add a new attribute to the list, the attribute is also added to the field represented by this object. If you remove an attribute from the list, it is also removed from the field.

Returns:
  a list of `AttributeInfo` objects.
See Also:
  - `AttributeInfo`

### getAttribute

public AttributeInfo getAttribute(String name)
Returns the attribute with the specified name. It returns null if the specified attribute is not found.

An attribute name can be obtained by, for example, `AnnotationsAttribute.visibleTag` or `AnnotationsAttribute.invisibleTag`.

Parameters:
  `name` - attribute name
See Also:
  - `getAttributes()`

### removeAttribute

public AttributeInfo removeAttribute(String name)
Removes an attribute with the specified name.

Parameters:
  `name` - attribute name.
Returns:
  the removed attribute or null.
Since:
  3.21

### addAttribute

public void addAttribute(AttributeInfo info)
Appends an attribute. If there is already an attribute with the same name, the new one substitutes for it.

See Also:
  - `getAttributes()`