同クラスの各インスタンスから、共通であるインスタンスメソッドを呼び出して、特定の結果を得る
// ./myClass/MyClass.java
package myClass;
public class MyClass {
private Boolean checked;
private String name;
public Boolean isChecked() {
return checked;
}
public String getName() {
return this.name;
}
public MyClass(String _name, Boolean _checked) {
this.checked = _checked;
this.name = _name;
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Stream;
import myClass.MyClass;
class Main {
public static void main(String []args) {
// 特定のクラスのインスタンスを想定
MyClass button1 = new MyClass("Alice", false);
MyClass button2 = new MyClass("Ivan", true);
MyClass button3 = new MyClass("Bob", false);
// リストに格納
List<MyClass> buttonList = Arrays.asList(
button1,
button2,
button3
);
/*
* ここでリストを順次処理して
* 共通しているインスタンスのメソッドを呼び出す
* filter に合致する条件をもとに、そこからmap で当該要素の名前を得る
*/
String resultName = buttonList.stream()
.filter((button) -> {
return button.isChecked();
})
.map((button) -> {
return button.getName();
})
.findFirst()
.get();
System.out.println(resultName); // => "Ivan"
}
}