blob: 40269e57ae44b52fee64b4ba4d9931f19cdc3348 [file] [log] [blame]
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.checkerframework.checker.nullness.qual.KeyFor;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
public class Issue1922 {
// A method to find a K in the collection and return it, or return null.
public static <K> @Nullable K findKey(Collection<@NonNull K> keys, Object target) {
for (K key : keys) {
if (target.equals(key)) {
return key;
}
}
return null;
}
// Find a key in a map and return String version of its value.
public static String findKeyAndFetchString(Map<String, Object> someMap) {
// :: error: (type.argument)
@Nullable @KeyFor("someMap") String myKey = Issue1922.<@KeyFor("someMap") String>findKey(someMap.keySet(), "Foo");
// :: error: (argument)
Object value = someMap.get(myKey);
return value.toString();
}
public static void main(String[] args) {
findKeyAndFetchString(new HashMap<>());
}
}