将 null 值保存为多个键,其中 null 具有单一含义
save null values as multiple keys where null has a single meaning
我需要一个多键映射并且我想使用空值作为键。我正在使用不允许空键的 HashBasedTable。
Table<String, String, JsonObject> table = HashBasedTable.create();
String key1= null, key2= null;
table.put(key1, key2, value);
我怎样才能达到同样的效果。请帮忙。谢谢
您可以使用 null object,在这种情况下,您知道的字符串不属于可能的字符串集(例如 "Unknown"
):
Table<String, String, JsonObject> table = HashBasedTable.create();
String key1 = MoreObjects.firstNonNull(realKey1, "Unknown"),
key2 = MoreObjects.firstNonNull(realKey2, "Unknown");
table.put(key1, key2, value);
你也可以使用 Optional<String>
来包装你的键,然后你的空对象变成 Optional.empty()
(或者 Optional.absent()
如果你使用 Guava 的 Optional
):
Table<Optional<String>, Optional<String>, JsonObject> table = HashBasedTable.create();
Optional<String> key1 = Optional.ofNullable(realKey1),
key2 = Optional.ofNullable(realKey2);
table.put(key1, key2, value);
我需要一个多键映射并且我想使用空值作为键。我正在使用不允许空键的 HashBasedTable。
Table<String, String, JsonObject> table = HashBasedTable.create();
String key1= null, key2= null;
table.put(key1, key2, value);
我怎样才能达到同样的效果。请帮忙。谢谢
您可以使用 null object,在这种情况下,您知道的字符串不属于可能的字符串集(例如 "Unknown"
):
Table<String, String, JsonObject> table = HashBasedTable.create();
String key1 = MoreObjects.firstNonNull(realKey1, "Unknown"),
key2 = MoreObjects.firstNonNull(realKey2, "Unknown");
table.put(key1, key2, value);
你也可以使用 Optional<String>
来包装你的键,然后你的空对象变成 Optional.empty()
(或者 Optional.absent()
如果你使用 Guava 的 Optional
):
Table<Optional<String>, Optional<String>, JsonObject> table = HashBasedTable.create();
Optional<String> key1 = Optional.ofNullable(realKey1),
key2 = Optional.ofNullable(realKey2);
table.put(key1, key2, value);