import java.util.Map; import org.checkerframework.checker.nullness.qual.*; class MapLoop { void test1(Map<String, String> map) { for (Map.Entry<@KeyFor("map") String, String> entry : map.entrySet()) {} } void test2(Map<String, String> map) { for (Map.Entry<? extends String, ? extends String> entry : map.entrySet()) {} } void test3(Map<String, @Nullable Object> map) { for (Map.Entry<? extends String, @Nullable Object> entry : map.entrySet()) {} for (Object val : map.values()) {} } }