いいえ、切り替え条件として使用することはできません。get メソッドを別のクラスに拡張してオーバーライドするか、次のように試すことができます。
Map<String, String> test = new HashMap<String, String>();
test.put("today", "monday");
String s = test.get("hello") == null? "default value" : test.get("hello");
System.out.println("Test =:" + s);
また
final String defaultValue = "default value";
Map<String, String> test = new HashMap<String, String>() {
@Override
public String get(Object key) {
String value = super.get(key);
if (value == null) {
return defaultValue;
}
return value;
};
};
test.put("today", "monday");
System.out.println("Test =:" + test.get("nokey"));
また、Properties
の代わりにクラスを使用するだけでこれを実現できますHashMap
。
Properties properties = new Properties();
properties.setProperty("key1", "value of key1");
String property1 = properties.getProperty("key1", "default value");
String property2 = properties.getProperty("key2", "default value");
System.out.println(property1);
System.out.println(property2);
印刷する:
value of key1
default value