# Interface: com.pnfsoftware.jeb.core.units.code.android.dex.IDexString
- Super interfaces: `com.pnfsoftware.jeb.core.units.code.ICodeString`

These objects represent DEX strings. The value of a string can be modified programmatically.

## Abstract Method: getHintUsedAsImmediate
- return type: `java.lang.Boolean`

Description: This method provides a hint regarding how this string is used. If true, it appears that it is  used as an immediate in the code, e.g. as a parameter to a `const-string` opcode. If  false, it appears the string is used as a metadata element, such as a method name, or part  of a type descriptor.
return: true if the string is used as an immediate; false if the string is a pure metadata          element \(this method never returns null\)

## Abstract Method: getHintUsedInDex
- return type: `java.lang.Boolean`

Description: This method provides a hint regarding whether this string appears to be used in the dex unit.  Usage here is meant in the broadest sense: it could be a string immediate used in Dalvik, or  a meta string referenced by other dex objects present in one of the dex files parsed to  create the dex unit.
return: true if the string is used; false if the string is not used \(dangling string\); null          if unknown

## Abstract Method: getHintUsedInDex
- parameter: `hintUsedAsImm`, type: `java.lang.Boolean`
- return type: `java.lang.Boolean`

Description: This method provides a hint regarding whether this string appears to be used in the dex unit.  Usage here is meant in the broadest sense: it could be a string immediate used in Dalvik, or  a meta string referenced by other dex objects present in one of the dex files parsed to  create the dex unit.
parameter: hintUsedAsImm: a hint regarding the potential usage of this string as a dex immediate,             as returned by [#getHintUsedAsImmediate()](#getHintUsedAsImmediate()); if unknown, leave to null
return: true if the string is used; false if the string is not used \(dangling string\); null          if unknown

## Abstract Method: getValue
- parameter: `effective`, type: `boolean`
- return type: `java.lang.String`

Description: Retrieve the string value.
parameter: effective: true to retrieve the current value, false to retrieve the original value
return: the string value

## Abstract Method: setValue
- parameter: `value`, type: `java.lang.String`

Description: Set the alternate value of a string. This method does not check for duplicates in the string  pool: it may break the DEX specifications.  

  On success, it is the responsibility of the caller to notify client code that the unit has  changed, by issuing a `UnitChange` event to listeners.
parameter: value: the new value, or null to reset to the original value

