# Package org.apache.commons.lang3.builder

Assists in creating consistent `equals(Object)`, `toString()`, `hashCode()`, and `compareTo(Object)` methods.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Builder<T> | The Builder interface is designed to designate a class as a builder object in the Builder design pattern.
  Diffable<T> | `Diffable` classes can be compared with other objects for differences.

- Class Summary
  Class | Description
  --- | ---
  CompareToBuilder | Assists in implementing `Comparable.compareTo(Object)` methods.
  Diff<T> | A `Diff` contains the differences between two `Diffable` class fields.
  DiffBuilder<T> | Assists in implementing `Diffable.diff(Object)` methods.
  DiffResult<T> | A `DiffResult` contains a collection of the differences between two `Diffable` objects.
  EqualsBuilder | Assists in implementing `Object.equals(Object)` methods.
  HashCodeBuilder | Assists in implementing `Object.hashCode()` methods.
  MultilineRecursiveToStringStyle | Works with `ToStringBuilder` to create a "deep" `toString`.
  RecursiveToStringStyle | Works with `ToStringBuilder` to create a "deep" `toString`.
  ReflectionDiffBuilder<T> | Assists in implementing `Diffable.diff(Object)` methods.
  ReflectionToStringBuilder | Assists in implementing `Object.toString()` methods using reflection.
  StandardToStringStyle | Works with `ToStringBuilder` to create a `toString`.
  ToStringBuilder | Assists in implementing `Object.toString()` methods.
  ToStringStyle | Controls `String` formatting for `ToStringBuilder`.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  DiffExclude | Excludes a field from being used by the `ReflectionDiffBuilder`.
  EqualsExclude | Excludes a field from being used by the various `reflectionEquals` methods defined on `EqualsBuilder`.
  HashCodeExclude | Exclude a field from being used by the various `reflectionHashcode` methods defined on `HashCodeBuilder`.
  ToStringExclude | Excludes a field from being used by the `ReflectionToStringBuilder`.
  ToStringSummary | Use this annotation on the fields to get the summary instead of the detailed information when using `ReflectionToStringBuilder`.

## Package org.apache.commons.lang3.builder Description

Assists in creating consistent `equals(Object)`, `toString()`, `hashCode()`, and `compareTo(Object)` methods. These classes are not thread-safe.

When you write a `hashCode()`, do you check Bloch's Effective Java? No? You just hack in a quick number? Well `HashCodeBuilder` will save your day. It, and its buddies (`EqualsBuilder`, `CompareToBuilder`, `ToStringBuilder`), take care of the nasty bits while you focus on the important bits, like which fields will go into making up the hash code.

Since:
  1.0
See Also:
  `Object#equals(Object)`, `Object#toString()`, `Object#hashCode()`, `Comparable#compareTo(Object)`

Copyright © 2001–2023 The Apache Software Foundation. All rights reserved.