在Java 8中,我正在尝试定义一个通用方法来查找Map<K, V>
是否包含K key
:
private static Optional<V> find(final Map<K, V> map, final K key) {
final V result = map.get(key);
return (result == null) ? Optional.empty() : Optional.of(key);
}
但我在K
和V
上收到了一堆编译时错误:
[ERROR] ... Compilation failure:
[ERROR] ~/App.java:[31,47] cannot find symbol
[ERROR] symbol: class K
[ERROR] location: class com.myapp.app.App
[ERROR] ~/App.java:[31,50] cannot find symbol
[ERROR] symbol: class V
[ERROR] location: class com.myapp.app.App
如何解决这些错误?
答案 0 :(得分:1)
private static <K, V> Optional<V> find(final Map<K, V> map, final K key) {
final V result = map.get(key);
return Optional.ofNullable(result);
}
信用 - Sotirios Delimanolis提及Option#ofNullable
而我未能列出通用参数。