【Java】Optionalの基礎1
java.util.Optionalは値をラップして、その値がnullかもしれないことを表現するクラス。
これによって、煩雑な記述を減らすことにより、プログラムの堅牢度を高める。
Optionalを使用する場面の想定はメソッドの戻り値
クラス間の結合度について
あるメソッドの戻り値として、nullが来る可能性がある場合、使用側はこれを知っている必要がある。
⇒知識を必要としており、多少なりともクラス間の結合度が密になる。
Optionalを使用することによって、ユーザはメソッドの戻り値としてnullが来る可能性があることが分かる。
例:定義側
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Optional;
public class MyOptional{
private final ArrayList<String> LIST
= new ArrayList<String>(Arrays.asList("Test", null, "Rest"));
public Optional<String> getFromList(){
var num = (int)(Math.rondom()*3);
return Optional.ofNullable(this.LIST.get(num));
}
}
例:呼び出し側
public class Exec{
var myOpt = new MyOptional();
// String str1 = myOpt.getFromList(); // error
String str2 = myOpt.getFromList().orElse("NULL");
var opt1 = myOpt.getFromList();
Optional<String> opt2 = myOpt.getFromList();
}