# ObjectsCompat

Artifact: [androidx.core:core](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/util/ObjectsCompat.java+class:androidx.core.util.ObjectsCompat) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/core#1.1.0)

*** ** * ** ***


```
class ObjectsCompat
```

<br />

*** ** * ** ***

This class consists of static utility methods for operating on objects.

## Summary

| ### Public functions |
|---|---|
| `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/core/util/ObjectsCompat#equals(java.lang.Object,java.lang.Object)(a: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, b: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` Returns `true` if the arguments are equal to each other and `false` otherwise. |
| `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/core/util/ObjectsCompat#hash(java.lang.Object...)(values: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!>?)` Generates a hash code for a sequence of input values. |
| `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/core/util/ObjectsCompat#hashCode(java.lang.Object)(o: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` Returns the hash code of a non-`null` argument and 0 for a `null` argument. |
| `java-static T` | `<T> https://developer.android.com/reference/kotlin/androidx/core/util/ObjectsCompat#requireNonNull(T)(obj: T?)` Checks that the specified object reference is not `null`. |
| `java-static T` | `<T> https://developer.android.com/reference/kotlin/androidx/core/util/ObjectsCompat#requireNonNull(T,java.lang.String)(obj: T?, message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Checks that the specified object reference is not `null` and throws a customized `https://developer.android.com/reference/java/lang/NullPointerException.html` if it is. |
| `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/kotlin/androidx/core/util/ObjectsCompat#toString(java.lang.Object,java.lang.String)(o: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, nullDefault: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Returns the result of calling `toString` on the first argument if the first argument is not `null` and returns the second argument otherwise. |

## Public functions

### equals

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/core#1.1.0)

```
java-static fun equals(a: Any?, b: Any?): Boolean
```

Returns `true` if the arguments are equal to each other and `false` otherwise.

Consequently, if both arguments are `null`, `true` is returned and if exactly one argument is `null`, `
false` is returned. Otherwise, equality is determined by using the `https://developer.android.com/reference/java/lang/Object.html#equals(java.lang.Object)` method of the first argument.

| Parameters |
|---|---|
| `a: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | an object |
| `b: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | an object to be compared with `a` for equality |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if the arguments are equal to each other and `false` otherwise |

| See also |
|---|---|
| `https://developer.android.com/reference/java/lang/Object.html#equals(java.lang.Object)` |   |

### hash

```
java-static fun hash(values: Array<Any!>?): Int
```

Generates a hash code for a sequence of input values. The hash code is generated as if all the input values were placed into an array, and that array were hashed by calling `https://developer.android.com/reference/java/util/Arrays.html#hashCode(java.lang.Object[])`.

This method is useful for implementing `https://developer.android.com/reference/java/lang/Object.html#hashCode()` on objects containing multiple fields. For example, if an object that has three fields, `x`, `y`, and `z`, one could write:
>
> ```kotlin
> @Override public int hashCode() {
>     return ObjectsCompat.hash(x, y, z);
> }
> ```
**Warning: When a single object reference is supplied, the returned value does not equal the hash code of that object reference.** This value can be computed by calling `https://developer.android.com/reference/kotlin/androidx/core/util/ObjectsCompat#hashCode(java.lang.Object)`.

| Parameters |
|---|---|
| `values: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!>?` | the values to be hashed |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | a hash value of the sequence of input values |

| See also |
|---|---|
| `https://developer.android.com/reference/java/util/Arrays.html#hashCode(java.lang.Object[])` |   |

### hashCode

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/core#1.1.0)

```
java-static fun hashCode(o: Any?): Int
```

Returns the hash code of a non-`null` argument and 0 for a `null` argument.

| Parameters |
|---|---|
| `o: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | an object |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the hash code of a non-`null` argument and 0 for a `null` argument |

| See also |
|---|---|
| `https://developer.android.com/reference/java/lang/Object.html#hashCode()` |   |

### requireNonNull

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/core#1.6.0)

```
java-static fun <T> requireNonNull(obj: T?): T
```

Checks that the specified object reference is not `null`. This method is designed primarily for doing parameter validation in methods and constructors, as demonstrated below:
>
> ```kotlin
> public Foo(Bar bar) {
>     this.bar = ObjectsCompat.requireNonNull(bar);
> }
> ```

| Parameters |
|---|---|
| `<T>` | the type of the reference |
| `obj: T?` | the object reference to check for nullity |

| Returns |
|---|---|
| `T` | `obj` if not `null` |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException.html` | if `obj` is `null` |

### requireNonNull

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/core#1.6.0)

```
java-static fun <T> requireNonNull(obj: T?, message: String): T
```

Checks that the specified object reference is not `null` and throws a customized `https://developer.android.com/reference/java/lang/NullPointerException.html` if it is. This method is designed primarily for doing parameter validation in methods and constructors with multiple parameters, as demonstrated below:
>
> ```kotlin
> public Foo(Bar bar, Baz baz) {
>     this.bar = ObjectsCompat.requireNonNull(bar, "bar must not be null");
>     this.baz = ObjectsCompat.requireNonNull(baz, "baz must not be null");
> }
> ```

| Parameters |
|---|---|
| `<T>` | the type of the reference |
| `obj: T?` | the object reference to check for nullity |
| `message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | detail message to be used in the event that a ` NullPointerException` is thrown |

| Returns |
|---|---|
| `T` | `obj` if not `null` |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException.html` | if `obj` is `null` |

### toString

Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/core#1.5.0)

```
java-static fun toString(o: Any?, nullDefault: String?): String?
```

Returns the result of calling `toString` on the first argument if the first argument is not `null` and returns the second argument otherwise.

| Parameters |
|---|---|
| `o: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | an object |
| `nullDefault: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | string to return if the first argument is `null` |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | the result of calling `toString` on the first argument if it is not ` null` and the second argument otherwise. |