「Java8」OptionalクラスのisPresentメソッドで設定値がnullでないことをチェックする
環境
JavaSE 1.8
Eclipse 4.14.0
構文
1.public static <T> Optional<T> of(T value)
指定された非null値を含むOptionalを返します。
パラメータ:
value – 存在する値、非nullである必要がある
戻り値:
存在する値でのOptional
2.public static <T> Optional<T> empty()
空のOptionalインスタンスを返します。このOptionalの値は存在しません。
3.public boolean isPresent()
存在する値がある場合はtrueを返し、それ以外の場合はfalseを返します。
使用例
package com.arkgame.study;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
public class OptionalDemo {
@SuppressWarnings("serial")
private static Map<String, String> users = new HashMap<String, String>() {
{
put("101", "東京");
put("202", "大阪");
put("303", "福岡");
}
};
// Optionalの宣言
public static Optional<String> getCityName(String uid) {
if (users.containsKey(uid)) {
// nullでない値を設定
return Optional.of(users.get(uid));
} else {
// 値がnullの場合
return Optional.empty();
}
}
public static void main(String[] args) {
// Optionalインスタンス生成
Optional<String> opA = getCityName("202");
// Optionalに値が存在する場合は値を返す
if(opA.isPresent()) { //null出ない場合
System.out.println("結果1: "+opA.get());
}else { //nullの場合
System.out.println("値がnull");
}
Optional<String> opB = getCityName("302");
// Optionalに値が存在する場合は値を返す
if(opB.isPresent()) { //null出ない場合
System.out.println("結果1: "+opB.get());
}else { //nullの場合
System.out.println("値がnull");
}
}
}
package com.arkgame.study;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
public class OptionalDemo {
@SuppressWarnings("serial")
private static Map<String, String> users = new HashMap<String, String>() {
{
put("101", "東京");
put("202", "大阪");
put("303", "福岡");
}
};
// Optionalの宣言
public static Optional<String> getCityName(String uid) {
if (users.containsKey(uid)) {
// nullでない値を設定
return Optional.of(users.get(uid));
} else {
// 値がnullの場合
return Optional.empty();
}
}
public static void main(String[] args) {
// Optionalインスタンス生成
Optional<String> opA = getCityName("202");
// Optionalに値が存在する場合は値を返す
if(opA.isPresent()) { //null出ない場合
System.out.println("結果1: "+opA.get());
}else { //nullの場合
System.out.println("値がnull");
}
Optional<String> opB = getCityName("302");
// Optionalに値が存在する場合は値を返す
if(opB.isPresent()) { //null出ない場合
System.out.println("結果1: "+opB.get());
}else { //nullの場合
System.out.println("値がnull");
}
}
}
package com.arkgame.study; import java.util.HashMap; import java.util.Map; import java.util.Optional; public class OptionalDemo { @SuppressWarnings("serial") private static Map<String, String> users = new HashMap<String, String>() { { put("101", "東京"); put("202", "大阪"); put("303", "福岡"); } }; // Optionalの宣言 public static Optional<String> getCityName(String uid) { if (users.containsKey(uid)) { // nullでない値を設定 return Optional.of(users.get(uid)); } else { // 値がnullの場合 return Optional.empty(); } } public static void main(String[] args) { // Optionalインスタンス生成 Optional<String> opA = getCityName("202"); // Optionalに値が存在する場合は値を返す if(opA.isPresent()) { //null出ない場合 System.out.println("結果1: "+opA.get()); }else { //nullの場合 System.out.println("値がnull"); } Optional<String> opB = getCityName("302"); // Optionalに値が存在する場合は値を返す if(opB.isPresent()) { //null出ない場合 System.out.println("結果1: "+opB.get()); }else { //nullの場合 System.out.println("値がnull"); } } }
実行結果
結果1: 大阪
値がnull