# An Introduction to AutoValue

DevFeed: [An Introduction to AutoValue](<https://devfeed.tech/articles/an-introduction-to-autovalue-30584.md>)

Original publisher: [Read original article](<https://ryanharter.com/blog/2016/03/an-introduction-to-autovalue/>)

Published: 2016-03-22T07:00:00Z

Content type: tutorial

Language: en

Sources: [Blogs on Ryan Harter](<https://devfeed.tech/sources/blogs-on-ryan-harter.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [annotation-processor](<https://devfeed.tech/tags/annotation-processor.md>), [class](<https://devfeed.tech/tags/class.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [java](<https://devfeed.tech/tags/java.md>), [library](<https://devfeed.tech/tags/library.md>), [object](<https://devfeed.tech/tags/object.md>), [properties](<https://devfeed.tech/tags/properties.md>), [property](<https://devfeed.tech/tags/property.md>)

## AI overview

This introductory tutorial explains Java value types and the boilerplate required to make them immutable, compare them by property values, and provide useful string representations. It presents Google's AutoValue library as an annotation processor that generates this routine code, with extensions added in a recent update.

## Source excerpt

Value types in Java are hard. Well, not hard, but tedious. Google's AutoValue library makes them much easier and has just received the long awaited update that adds the flexibility of extensions. Value Types in Java Before we can talk about how great AutoValue is, let's look at the problem it solves: value types. A value type is simply an immutable objects whose equality is based on property values, as opposed to identity. Think of a Money object: