Java ObjLongConsumer

Introduction

In Java, the ObjLongConsumer interface is a functional interface that represents an operation that accepts an object and a long-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 long value, such as modifying an object’s state.

Table of Contents

  1. What is ObjLongConsumer?
  2. Methods and Syntax
  3. Examples of ObjLongConsumer
  4. Real-World Use Case
  5. Conclusion

1. What is ObjLongConsumer?

ObjLongConsumer is a functional interface that performs an operation on an object and a long value without returning any result. It is useful for scenarios where an object’s state needs to be modified based on a long input.

2. Methods and Syntax

The main method in the ObjLongConsumer interface is:

  • void accept(T t, long value): Performs this operation on the given object and long argument.

Syntax

ObjLongConsumer<T> objLongConsumer = (T t, long value) -> { // operation on t and value }; 

3. Examples of ObjLongConsumer

Example 1: Updating Account Balance

import java.util.function.ObjLongConsumer; class Account { private String name; private long balance; public Account(String name, long balance) { this.name = name; this.balance = balance; } public void deposit(long 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", 100L); // Define an ObjLongConsumer that deposits a long value to an account ObjLongConsumer<Account> deposit = (acc, amount) -> acc.deposit(amount); deposit.accept(account, 50L); System.out.println(account); } } 

Output:

John's balance: 150 

Example 2: Adding Quantity to a Product

import java.util.function.ObjLongConsumer; class Product { private String name; private long quantity; public Product(String name, long quantity) { this.name = name; this.quantity = quantity; } public void addQuantity(long amount) { this.quantity += amount; } @Override public String toString() { return name + "'s quantity after addition: " + quantity; } } public class ProductQuantityExample { public static void main(String[] args) { Product product = new Product("Laptop", 10L); // Define an ObjLongConsumer that adds quantity to a product ObjLongConsumer<Product> addQuantity = (prod, amount) -> prod.addQuantity(amount); addQuantity.accept(product, 5L); System.out.println(product); } } 

Output:

Laptop's quantity after addition: 15 

4. Real-World Use Case: Logging Timestamps

In applications, ObjLongConsumer can be used to log timestamps to a logger object.

import java.util.function.ObjLongConsumer; class Logger { private String id; public Logger(String id) { this.id = id; } public void logTimestamp(long timestamp) { System.out.println("Logger " + id + " recorded timestamp: " + timestamp); } } public class TimestampLoggingExample { public static void main(String[] args) { Logger logger = new Logger("Logger1"); // Define an ObjLongConsumer to log timestamps ObjLongConsumer<Logger> logTimestamp = (log, time) -> log.logTimestamp(time); logTimestamp.accept(logger, System.currentTimeMillis()); } } 

Output:

Logger Logger1 recorded timestamp: [current timestamp in milliseconds] 

Conclusion

The ObjLongConsumer interface is a versatile tool in Java for performing operations on an object and a long value without returning a result. It simplifies handling tasks like updating object states or logging information. Using ObjLongConsumer can lead to cleaner and more efficient code, especially in functional programming contexts.

Leave a Comment

Scroll to Top