| 知乎专栏 |
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);
}
});
}