# Package org.apache.commons.lang3.builder

package org.apache.commons.lang3.builder
Provides classes to create 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)`

- Related Packages
  Package
  Description
  org.apache.commons.lang3
  Provides highly reusable utility methods, chiefly concerned with adding value to the `java.lang` classes.
- Class
  Description
  AbstractSupplier<T, B extends AbstractSupplier<T,B,E>, E extends Throwable>
  Abstracts supplying an instance of `T`.
  Builder<T>
  The Builder interface is designed to designate a class as a builder object in the Builder design pattern.
  CompareToBuilder
  Assists in implementing `Comparable.compareTo(Object)` methods.
  Diff<T>
  A `Diff` contains the differences between two `Diffable` class fields.
  Diffable<T>
  `Diffable` classes can be compared with other objects for differences.
  DiffBuilder<T>
  Assists in implementing `Diffable.diff(Object)` methods.
  DiffBuilder.Builder<T>
  Constructs a new instance.
  DiffExclude
  Excludes a field from being used by the `ReflectionDiffBuilder`.
  DiffResult<T>
  A `DiffResult` contains a collection of the differences between two `Diffable` objects.
  EqualsBuilder
  Assists in implementing `Object.equals(Object)` methods.
  EqualsExclude
  Excludes a field from being used by the various `reflectionEquals` methods defined on `EqualsBuilder`.
  HashCodeBuilder
  Assists in implementing `Object.hashCode()` methods.
  HashCodeExclude
  Exclude a field from being used by the various `reflectionHashcode` methods defined on `HashCodeBuilder`.
  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.
  ReflectionDiffBuilder.Builder<T>
  Constructs a new instance.
  ReflectionToStringBuilder
  Assists in implementing `Object.toString()` methods using reflection.
  StandardToStringStyle
  Works with `ToStringBuilder` to create a `toString`.
  ToStringBuilder
  Assists in implementing `Object.toString()` methods.
  ToStringExclude
  Excludes a field from being used by the `ReflectionToStringBuilder`.
  ToStringStyle
  Controls `String` formatting for `ToStringBuilder`.
  ToStringSummary
  Use this annotation on the fields to get the summary instead of the detailed information when using `ReflectionToStringBuilder`.