📜  Java 8 | ObjLongConsumer 接口与示例(1)

📅  最后修改于: 2023-12-03 14:42:12.561000             🧑  作者: Mango

Java 8 | ObjLongConsumer 接口与示例

Java 8 中引入了一些新的函数式接口,其中之一是 ObjLongConsumer。ObjLongConsumer 是一个接口,它接受两个参数:一个对象和一个 long 值,并且没有任何返回值。这个接口通常用于需要对对象和 long 值进行操作的函数,例如遍历集合并对其中的元素执行某些操作。

ObjLongConsumer 接口定义

下面是 ObjLongConsumer 接口的定义:

@FunctionalInterface
public interface ObjLongConsumer<T> {
    void accept(T t, long value);
}

可以看到该接口是一个函数式接口,使用 @FunctionalInterface 注解进行标注,仅包含 accept 方法。

示例

下面是一个 ObjLongConsumer 接口的示例,假设有一个类 Person,其中包含一个 long 类型的属性 age,我们要遍历一个包含 Person 对象的列表,输出每个 Person 的名字和年龄。

public class Person {
    private String name;
    private long age;

    public Person(String name, long age) {
        this.name = name;
        this.age = age;
    }

    public long getAge() {
        return age;
    }

    public String getName() {
        return name;
    }
}

public class Example {

    public static void main(String[] args) {
        List<Person> persons = Arrays.asList(new Person("Alice", 20), new Person("Bob", 30), new Person("Charlie", 40));

        ObjLongConsumer<Person> printPersonAge = (person, age) -> System.out.println(person.getName() + " age is " + age);

        persons.forEach(person -> printPersonAge.accept(person, person.getAge()));
    }
}

可以看到,我们创建了一个 ObjLongConsumer 对象 printPersonAge,当我们调用 accept 方法时,输出 Person 的名字和年龄。最后,我们使用 forEach 方法将该函数应用于集合中的每个 Person 对象。