知乎专栏 |
Consumer<String> printer = (s) -> System.out.println(s); // 使用 accept 方法执行操作 printer.accept("Hello, World!");
Consumer<String> upperCasePrinter = (s) -> System.out.println(s.toUpperCase()); Consumer<String> lowerCasePrinter = (s) -> System.out.println(s.toLowerCase()); // 使用 andThen 方法连接两个 Consumer Consumer<String> combinedPrinter = upperCasePrinter.andThen(lowerCasePrinter); combinedPrinter.accept("Hello world!!!");
package cn.netkiller; import java.util.function.Consumer; import lombok.Data; /** * TestConsumer */ @Data public class TestConsumer { private String name; private String nickname; private int age; public void init(Consumer<TestConsumer> configurator) { configurator.accept(this); } public static void main(String[] args) { System.out.println("Hello world!"); TestConsumer test = new TestConsumer(); // 使用 Consumer 配置 Person 对象 test.init(p -> { p.setName("Neo"); p.setNickname("netkiller"); p.setAge(30); }); System.out.println(test); } }
andThen
Consumer<Integer> test = (n) -> { System.out.println(n); }; test.andThen((v) -> { System.out.println(v); }).accept(100);
IntConsumer printNumber = num -> System.out.println("The number is: " + num); printNumber.accept(42); // 输出: The number is: 42
public void play(String url, ProgressBar progressBar, Consumer<Void> consumer) { if (neoPlayer == null) { neoPlayer = NeoPlayer.getInstance(); Log.i(TAG, "MediaPlayer 创建实例"); } if (url == null || url.isEmpty()) { Log.i(TAG, "Play error: " + url); return; } else { Log.i(TAG, "Play: " + url); } try { neoPlayer.resetPlayer(); neoPlayer.setDataSource(url);//设置播放来源 neoPlayer.prepareAsync();//异步准备 } catch (IOException e) { Log.d(TAG, e.toString()); } catch (IllegalStateException e) { Log.d(TAG, e.toString()); } neoPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { //异步准备监听 @Override public void onPrepared(MediaPlayer mediaPlayer) { // Log.i(TAG, "Voice 播放异步文件,时长: " + mediaPlayer.getDuration() / 1000 + " Audio: " + url); mediaPlayer.start();//播放 if (progressBar != null) { progress(progressBar); progressBar.setVisibility(View.VISIBLE); } } }); neoPlayer.setScreenOnWhilePlaying(true);// 设置播放的时候一直让屏幕变亮 neoPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { //文件缓冲监听 @Override public void onBufferingUpdate(MediaPlayer mediaPlayer, int i) { Log.i(TAG, "onBufferingUpdate Voice 缓冲区加载进度: " + i + "%"); } }); neoPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mediaPlayer) { progressBar.setVisibility(View.GONE); consumer.accept(null); } }); }