# Interface UnaryOperator<T>

Type Parameters:
  `T` - the type of the operand and result of the operator

All Superinterfaces:
  `Function<T,T>`

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface UnaryOperator<T> extends Function<T,T>
Represents an operation on a single operand that produces a result of the same type as its operand. This is a specialization of `Function` for the case where the operand and result are of the same type.

This is a functional interface whose functional method is `Function.apply(Object)`.

Since:
  1.8
See Also:
  - `Function`

- ## Method Summary

  Static Methods
  Modifier and Type
  Method
  Description
  `static <T> UnaryOperator<T>`
  `identity()`
  Returns a unary operator that always returns its input argument.

  ### Methods declared in interface Function

  `andThen, apply, compose`
  Modifier and Type
  Method
  Description
  `default <V> Function<T,V>`
  `andThen(Function<? super T, ? extends V> after)`
  Returns a composed function that first applies this function to its input, and then applies the `after` function to the result.
  `T`
  `apply(T t)`
  Applies this function to the given argument.
  `default <V> Function<V,T>`
  `compose(Function<? super V, ? extends T> before)`
  Returns a composed function that first applies the `before` function to its input, and then applies this function to the result.

- ## Method Details

  - ### identity

    static <T> UnaryOperator<T> identity()
    Returns a unary operator that always returns its input argument.
    Type Parameters:
      `T` - the type of the input and output of the operator
    Returns:
      a unary operator that always returns its input argument