javassist

Class CtField

public class CtField extends CtMember

An instance of CtField represents a field.

See Also: getDeclaredFields

Nested Class Summary
abstract static classCtField.Initializer
Instances of this class specify how to initialize a field.
Constructor Summary
CtField(CtClass type, String name, CtClass declaring)
Creates a CtField object.
CtField(CtField src, CtClass declaring)
Creates a copy of the given field.
Method Summary
Object[]getAnnotations()
Returns the annotations associated with this field.
byte[]getAttribute(String name)
Obtains an attribute with the given name.
Object[]getAvailableAnnotations()
Returns the annotations associated with this field.
ObjectgetConstantValue()
Returns the value of this field if it is a constant field.
CtClassgetDeclaringClass()
Returns the class declaring the field.
FieldInfogetFieldInfo()
Returns the FieldInfo representing the field in the class file.
FieldInfogetFieldInfo2()
Returns the FieldInfo representing the field in the class file (read only).
intgetModifiers()
Returns the encoded modifiers of the field.
StringgetName()
Returns the name of the field.
StringgetSignature()
Returns the character string representing the type of the field.
CtClassgetType()
Returns the type of the field.
static CtFieldmake(String src, CtClass declaring)
Compiles the given source code and creates a field.
voidsetAttribute(String name, byte[] data)
Adds an attribute.
voidsetModifiers(int mod)
Sets the encoded modifiers of the field.
voidsetName(String newName)
Changes the name of the field.
voidsetType(CtClass clazz)
Sets the type of the field.
StringtoString()
Returns a String representation of the object.

Constructor Detail

CtField

public CtField(CtClass type, String name, CtClass declaring)
Creates a CtField object. The created field must be added to a class with CtClass.addField(). An initial value of the field is specified by a CtField.Initializer object.

If getter and setter methods are needed, call CtNewMethod.getter() and CtNewMethod.setter().

Parameters: type field type name field name declaring the class to which the field will be added.

See Also: addField getter setter Initializer

CtField

public CtField(CtField src, CtClass declaring)
Creates a copy of the given field. The created field must be added to a class with CtClass.addField(). An initial value of the field is specified by a CtField.Initializer object.

If getter and setter methods are needed, call CtNewMethod.getter() and CtNewMethod.setter().

Parameters: src the original field declaring the class to which the field will be added.

See Also: getter setter Initializer

Method Detail

getAnnotations

public Object[] getAnnotations()
Returns the annotations associated with this field.

Returns: an array of annotation-type objects.

Since: 3.1

See Also: getAvailableAnnotations

getAttribute

public byte[] getAttribute(String name)
Obtains an attribute with the given name. If that attribute is not found in the class file, this method returns null.

Note that an attribute is a data block specified by the class file format. See AttributeInfo.

Parameters: name attribute name

getAvailableAnnotations

public Object[] getAvailableAnnotations()
Returns the annotations associated with this field. If any annotations are not on the classpath, they are not included in the returned array.

Returns: an array of annotation-type objects.

Since: 3.3

See Also: getAnnotations

getConstantValue

public Object getConstantValue()
Returns the value of this field if it is a constant field. This method works only if the field type is a primitive type or String type. Otherwise, it returns null. A constant field is static and final.

Returns: a Integer, Long, Float, Double, Boolean, or String object representing the constant value. null if it is not a constant field or if the field type is not a primitive type or String.

getDeclaringClass

public CtClass getDeclaringClass()
Returns the class declaring the field.

getFieldInfo

public FieldInfo getFieldInfo()
Returns the FieldInfo representing the field in the class file.

getFieldInfo2

public FieldInfo getFieldInfo2()
Returns the FieldInfo representing the field in the class file (read only). Normal applications do not need calling this method. Use getFieldInfo().

The FieldInfo object obtained by this method is read only. Changes to this object might not be reflected on a class file generated by toBytecode(), toClass(), etc in CtClass.

This method is available even if the CtClass containing this field is frozen. However, if the class is frozen, the FieldInfo might be also pruned.

See Also: getFieldInfo isFrozen prune

getModifiers

public int getModifiers()
Returns the encoded modifiers of the field.

See Also: Modifier

getName

public String getName()
Returns the name of the field.

getSignature

public String getSignature()
Returns the character string representing the type of the field. If two fields have the same type, getSignature() returns the same string.

Note that the returned string is not the type signature contained in the SignatureAttirbute. It is a descriptor. To obtain a type signature, call the following methods:

See Also: Descriptor SignatureAttribute

getType

public CtClass getType()
Returns the type of the field.

make

public static CtField make(String src, CtClass declaring)
Compiles the given source code and creates a field. Examples of the source code are:

Note that the source code ends with ';' (semicolon).

Parameters: src the source text. declaring the class to which the created field is added.

setAttribute

public void setAttribute(String name, byte[] data)
Adds an attribute. The attribute is saved in the class file.

Note that an attribute is a data block specified by the class file format. See AttributeInfo.

Parameters: name attribute name data attribute value

setModifiers

public void setModifiers(int mod)
Sets the encoded modifiers of the field.

See Also: Modifier

setName

public void setName(String newName)
Changes the name of the field.

setType

public void setType(CtClass clazz)
Sets the type of the field.

toString

public String toString()
Returns a String representation of the object.
Javassist, a Java-bytecode translator toolkit.
Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.