La interfaz LongUnaryOperator es parte del paquete java.util.function que se introdujo desde Java 8 para implementar la programación funcional en Java. Representa una función que toma un argumento y opera sobre él. Tanto su argumento como el tipo de retorno son de tipo de datos largos. Es muy similar a usar un objeto de tipo UnaryOperator <Long>.
La expresión lambda asignada a un objeto de tipo UnaryOperator se usa para definir su applyAsLong() que eventualmente aplica la operación dada en su argumento.
Funciones en la interfaz LongUnaryOperator
La interfaz LongUnaryOperator consta de las siguientes funciones:
1. identidad()
Este método devuelve un LongUnaryOperator que toma un valor largo y lo devuelve. El LongUnaryOperator devuelto no realiza ninguna operación en su único valor.
Sintaxis:
static LongUnaryOperator identity()
Parámetros: Este método no toma en ningún parámetro
Devoluciones: un LongUnaryOperator que toma un valor y lo devuelve.
A continuación se muestra el código para ilustrar el método Identity():
import java.util.function.LongUnaryOperator; public class GFG { public static void main(String args[]) { LongUnaryOperator op = LongUnaryOperator.identity(); System.out.println(op.applyAsLong(12)); } }
12
2. aplicarAsLong()
Este método toma un valor largo, realiza la operación dada y devuelve un resultado de valor largo.
Sintaxis:
long applyAsLong(long operand)
Parámetros: este método toma un parámetro de valor largo
Devoluciones: : Devuelve un resultado de valor largo.
A continuación se muestra el código para ilustrar el método applyAsLong():
Programa
import java.util.function.LongUnaryOperator; public class GFG { public static void main(String args[]) { LongUnaryOperator op = a -> 2 * a; System.out.println(op.applyAsLong(12)); } }
24
3. agregarLuego()
Devuelve un LongUnaryOperator compuesto en el que el operador parametrizado se ejecutará después del primero. Si cualquiera de las operaciones arroja un error, se retransmite a la persona que llama de la operación compuesta.
Sintaxis:
default LongUnaryOperator andThen(LongUnaryOperator after)
Parámetros: Este método acepta un parámetro después del cual es la operación a aplicar después de la actual.
Valor de retorno: este método devuelve un LongUnaryOperator compuesto que aplica la operación actual primero y luego la operación posterior.
Excepción: este método arroja NullPointerException si la operación posterior es nula.
A continuación se muestra el código para ilustrar el método addThen():
Programa 1:
import java.util.function.LongUnaryOperator; public class GFG { public static void main(String args[]) { LongUnaryOperator op = a -> 2 * a; op = op.andThen(a -> 3 * a); System.out.println(op.applyAsLong(12)); } }
72
Programa 2: para demostrar cuándo se devuelve NullPointerException.
import java.util.function.LongUnaryOperator; public class GFG { public static void main(String args[]) { try { LongUnaryOperator op = a -> 2 * a; op = op.andThen(null); System.out.println(op.applyAsLong(12)); } catch (Exception e) { System.out.println("Exception: " + e); } } }
Exception: java.lang.NullPointerException
4. componer()
Devuelve un LongUnaryOperator compuesto en el que se ejecutará primero la operación parametrizada y luego la primera. Si cualquiera de las operaciones arroja un error, se retransmite a la persona que llama de la operación compuesta.
Sintaxis:
default LongUnaryOperator compose(LongUnaryOperator before)
Parámetros: Este método acepta un parámetro antes del cual es la operación a aplicar primero y luego la actual
Valor devuelto: este método devuelve un LongUnaryOperator compuesto que aplica el operador actual después del operador parametrizado
Excepción: este método lanza NullPointerException si la operación anterior es nula.
A continuación se muestra el código para ilustrar el método compose():
Programa 1:
import java.util.function.LongUnaryOperator; public class GFG { public static void main(String args[]) { LongUnaryOperator op = a -> a / 3; op = op.compose(a -> a * 6); System.out.println(op.applyAsLong(12)); } }
24
Programa 2: para demostrar cuándo se devuelve NullPointerException.
import java.util.function.LongUnaryOperator; public class GFG { public static void main(String args[]) { try { LongUnaryOperator op = a -> a / 3; op = op.compose(null); System.out.println(op.applyAsLong(12)); } catch (Exception e) { System.out.println("Exception: " + e); } } }
Exception: java.lang.NullPointerException