広告

Java : LongConsumer - API使用例

LongConsumer (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。


概要

単一のlong値引数を受け取って結果を返さないオペレーションを表します。 これは、Consumerに対してプリミティブ型特殊化(long向け)を行ったものです。 LongConsumerは他のほとんどの関数型インタフェースと異なり、副作用を介して動作することを期待されます。

クラス構成

LongConsumer は プリミティブ型long パラメータと、戻り値なしの関数型インタフェースです。
主に、LongStreamOptionalLongラムダ式 として使われます。

final var stream = LongStream.of(1, 10, 16, 255);

final var action = new LongConsumer() {
    @Override
    public void accept(long value) {
        final var hex = "0x" + Long.toHexString(value);
        System.out.println(hex);
    }
};

System.out.println("-- forEach --");
stream.forEach(action);

// 結果
// ↓
//-- forEach --
//0x1
//0xa
//0x10
//0xff
// ラムダ式の例です。
final var stream = LongStream.of(1, 10, 16, 255);

System.out.println("-- forEach --");
stream.forEach(value -> {
    final var hex = "0x" + Long.toHexString(value);
    System.out.println(hex);
});

// 結果
// ↓
//-- forEach --
//0x1
//0xa
//0x10
//0xff

メソッド

void accept (long value)

指定された引数でこのオペレーションを実行します。

final var stream = LongStream.of(1, 10, 16, 255);

final var action = new LongConsumer() {
    @Override
    public void accept(long value) {
        final var hex = "0x" + Long.toHexString(value);
        System.out.println(hex);
    }
};

System.out.println("-- forEach --");
stream.forEach(action);

// 結果
// ↓
//-- forEach --
//0x1
//0xa
//0x10
//0xff
// ラムダ式の例です。
final var stream = LongStream.of(1, 10, 16, 255);

System.out.println("-- forEach --");
stream.forEach(value -> {
    final var hex = "0x" + Long.toHexString(value);
    System.out.println(hex);
});

// 結果
// ↓
//-- forEach --
//0x1
//0xa
//0x10
//0xff

default LongConsumer andThen (LongConsumer after)

このオペレーションを実行した後、続けてafterオペレーションを実行する合成LongConsumerを返します。

final var before = new LongConsumer() {
    @Override
    public void accept(long value) {
        System.out.println("before : " + value);
    }
};

final var after = new LongConsumer() {
    @Override
    public void accept(long value) {
        System.out.println("after  : " + value);
    }
};

final var consumer = before.andThen(after);
consumer.accept(123);

// 結果
// ↓
//before : 123
//after  : 123

関連記事

ページの先頭へ