Module java.compiler
Package javax.lang.model.element

# Interface Name

All Superinterfaces:
  `CharSequence`

public interface Name extends CharSequence
An immutable sequence of characters. When created by the same implementation, objects implementing this interface must obey the general equals contract when compared with each other. Therefore, `Name` objects from the same implementation are usable in collections while `Name`s from different implementations may not work properly in collections.

An empty `Name` has a length of zero.

In the context of annotation processing, the guarantees for "the same" implementation must include contexts where the API mediated side effects of processors could be visible to each other, including successive annotation processing rounds.

Since:
  1.6
See Also:
  `Elements.getName(java.lang.CharSequence)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`contentEquals​(CharSequence cs)`
Compares this name to the specified `CharSequence`.
`boolean`
`equals​(Object obj)`
Returns `true` if the argument represents the same name as `this`, and `false` otherwise.
`int`
`hashCode()`
Obeys the general contract of `Object.hashCode`.

### Methods declared in interface java.lang.CharSequence

`charAt, chars, codePoints, isEmpty, length, subSequence, toString`

## Method Details

### equals

boolean equals​(Object obj)
Returns `true` if the argument represents the same name as `this`, and `false` otherwise.

Note that the identity of a `Name` is a function both of its content in terms of a sequence of characters as well as the implementation which created it.

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - the object to be compared with this element
Returns:
  `true` if the specified object represents the same name as this
See Also:
  `Element.equals(java.lang.Object)`

### hashCode

int hashCode()
Obeys the general contract of `Object.hashCode`.

Overrides:
  `hashCode` in class `Object`
Returns:
  a hash code value for this object.
See Also:
  `equals(java.lang.Object)`

### contentEquals

boolean contentEquals​(CharSequence cs)
Compares this name to the specified `CharSequence`. The result is `true` if and only if this name represents the same sequence of `char` values as the specified sequence.

Parameters:
  `cs` - The sequence to compare this name against
Returns:
  `true` if this name represents the same sequence of `char` values as the specified sequence, `false` otherwise
See Also:
  `String.contentEquals(CharSequence)`