Introduction
In Java, the ObjDoubleConsumer
interface is a functional interface that represents an operation that accepts an object and a double
-valued argument and returns no result. It is part of the java.util.function
package and is commonly used for operations that involve both an object and a double
value, such as modifying an object's state.
Table of Contents
- What is
ObjDoubleConsumer
? - Methods and Syntax
- Examples of
ObjDoubleConsumer
- Real-World Use Case
- Conclusion
1. What is ObjDoubleConsumer?
ObjDoubleConsumer
is a functional interface that performs an operation on an object and a double
value without returning any result. It is useful for scenarios where an object's state needs to be modified based on a double
input.
2. Methods and Syntax
The main method in the ObjDoubleConsumer
interface is:
void accept(T t, double value)
: Performs this operation on the given object anddouble
argument.
Syntax
ObjDoubleConsumer<T> objDoubleConsumer = (T t, double value) -> {
// operation on t and value
};
3. Examples of ObjDoubleConsumer
Example 1: Updating Account Balance
import java.util.function.ObjDoubleConsumer;
class Account {
private String name;
private double balance;
public Account(String name, double balance) {
this.name = name;
this.balance = balance;
}
public void deposit(double amount) {
this.balance += amount;
}
@Override
public String toString() {
return name + "'s balance: " + balance;
}
}
public class AccountUpdateExample {
public static void main(String[] args) {
Account account = new Account("John", 100.0);
// Define an ObjDoubleConsumer that deposits a double value to an account
ObjDoubleConsumer<Account> deposit = (acc, amount) -> acc.deposit(amount);
deposit.accept(account, 50.0);
System.out.println(account);
}
}
Output:
John's balance: 150.0
Example 2: Applying a Discount to a Product
import java.util.function.ObjDoubleConsumer;
class Product {
private String name;
private double price;
public Product(String name, double price) {
this.name = name;
this.price = price;
}
public void applyDiscount(double discount) {
this.price -= this.price * discount / 100;
}
@Override
public String toString() {
return name + "'s price after discount: " + price;
}
}
public class ProductDiscountExample {
public static void main(String[] args) {
Product product = new Product("Laptop", 1000.0);
// Define an ObjDoubleConsumer that applies a discount to a product
ObjDoubleConsumer<Product> applyDiscount = (prod, discount) -> prod.applyDiscount(discount);
applyDiscount.accept(product, 10.0);
System.out.println(product);
}
}
Output:
Laptop's price after discount: 900.0
4. Real-World Use Case: Logging Temperature Readings
In applications, ObjDoubleConsumer
can be used to log temperature readings to a sensor object.
import java.util.function.ObjDoubleConsumer;
class Sensor {
private String id;
public Sensor(String id) {
this.id = id;
}
public void logTemperature(double temperature) {
System.out.println("Sensor " + id + " recorded temperature: " + temperature);
}
}
public class TemperatureLoggingExample {
public static void main(String[] args) {
Sensor sensor = new Sensor("A1");
// Define an ObjDoubleConsumer to log temperature readings
ObjDoubleConsumer<Sensor> logTemperature = (sens, temp) -> sens.logTemperature(temp);
logTemperature.accept(sensor, 25.5);
}
}
Output:
Sensor A1 recorded temperature: 25.5
Conclusion
The ObjDoubleConsumer
interface is a versatile tool in Java for performing operations on an object and a double
value without returning a result. It simplifies handling tasks like updating object states or logging information. Using ObjDoubleConsumer
can lead to cleaner and more efficient code, especially in functional programming contexts.
Comments
Post a Comment
Leave Comment