Эти интерфейсы предназначены для выполнения операций над объектом и примитивным значением (
double, int, long) без возврата результата. 🚩`ObjDoubleConsumer<T>` – принимает объект + `double`
Используется, когда надо обработать объект +
double, но ничего не возвращать.import java.util.function.ObjDoubleConsumer;
class User {
String name;
double discount;
User(String name) {
this.name = name;
}
void setDiscount(double discount) {
this.discount = discount;
}
}
public class Main {
public static void main(String[] args) {
ObjDoubleConsumer<User> applyDiscount = (user, discount) -> user.setDiscount(discount);
User user = new User("Иван");
applyDiscount.accept(user, 10.5); // Применяем скидку
System.out.println(user.name + " получил скидку " + user.discount + "%");
// Иван получил скидку 10.5%
}
}
🚩`ObjIntConsumer<T>` – принимает объект + `int`
Используется, когда нужно обработать объект и
int, но без возврата результата.import java.util.function.ObjIntConsumer;
class Person {
String name;
int age;
Person(String name) {
this.name = name;
}
void setAge(int age) {
this.age = age;
}
}
public class Main {
public static void main(String[] args) {
ObjIntConsumer<Person> setPersonAge = (person, age) -> person.setAge(age);
Person person = new Person("Анна");
setPersonAge.accept(person, 30); // Устанавливаем возраст
System.out.println(person.name + " теперь " + person.age + " лет");
// Анна теперь 30 лет
}
}
🚩`ObjLongConsumer<T>` – принимает объект + `long`
Используется, когда нужно передать объект +
long (например, ID, время) без возврата.import java.util.function.ObjLongConsumer;
class Account {
String username;
long id;
Account(String username) {
this.username = username;
}
void setId(long id) {
this.id = id;
}
}
public class Main {
public static void main(String[] args) {
ObjLongConsumer<Account> setAccountId = (account, id) -> account.setId(id);
Account account = new Account("user123");
setAccountId.accept(account, 100000L); // Присваиваем ID
System.out.println("Аккаунт " + account.username + " имеет ID " + account.id);
// Аккаунт user123 имеет ID 100000
}
}
Ставь 👍 и забирай 📚 Базу знаний