DoubleUnaryOperator is a functional interface that lives in java.util.function package.
It has one function applyAsDouble, which takes a double and returns a double.
It is called an UnaryOperator, because it performs it’s action on a single argument.
And, that single argument is of double type that’s why it has Double in it’s name.
We can implement this interface in different ways.
Implementation By a regular class.
private class DBLImple implements DoubleUnaryOperator{ @Override public double applyAsDouble(final double dblValue){ return dblValue * dblValue; } }
Implementation By an anonymous class.
final DoubleUnaryOperator dblOp = new DoubleUnaryOperator(){ @Override public double applyAsDouble(final double dblValue){ return dblValue * dblValue; } };
Implementation 1 – Using Lambda function
final DoubleUnaryOperator dblLambda_1 = (double dblValue) -> { return dblValue * dblValue ; };
Implementation 2 – Using Lambda Function
final DoubleUnaryOperator dblLambda_2 = dblValue -> dblValue * dblValue;
You can watch my youtube video to see me code the implementations.
Full Source Code :-
import java.util.function.DoubleUnaryOperator; public class DoubleUnaryOperatorImplementation{ //Implementation by a regular class private class DBLImple implements DoubleUnaryOperator{ @Override public double applyAsDouble(final double dblValue){ return dblValue * dblValue; } } //Anonymous class implementation final DoubleUnaryOperator dblOp = new DoubleUnaryOperator(){ @Override public double applyAsDouble(final double dblValue){ return dblValue * dblValue; } }; //Lambda implementation 1 final DoubleUnaryOperator dblLambda_1 = (double dblValue) -> { return dblValue * dblValue ; }; //Lambda Implementation 2 final DoubleUnaryOperator dblLambda_2 = dblValue -> dblValue * dblValue; public static void main(final String... args){ final DoubleUnaryOperatorImplementation obj = new DoubleUnaryOperatorImplementation(); final DBLImple dblObj = obj.new DBLImple(); System.out.println(dblObj.applyAsDouble(12.0)); System.out.println(obj.dblOp.applyAsDouble(12.0)); System.out.println(obj.dblLambda_1.applyAsDouble(12.0)); System.out.println(obj.dblLambda_2.applyAsDouble(12.0)); } }