Skip to content

Commit 27bb756

Browse files
agentgtmernstsmillst
authored
Make Map.entry require non-null parameters (typetools#178)
Co-authored-by: Michael Ernst <[email protected]> Co-authored-by: Suzanne Millstein <[email protected]>
1 parent 3272c84 commit 27bb756

File tree

1 file changed

+14
-14
lines changed
  • src/java.base/share/classes/java/util

1 file changed

+14
-14
lines changed

src/java.base/share/classes/java/util/Map.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ public static <K, V> Comparator<Map.Entry<K, V>> comparingByValue(Comparator<? s
641641
* @since 17
642642
*/
643643
@SuppressWarnings("unchecked")
644-
public static <K, V> Map.Entry<K, V> copyOf(Map.Entry<? extends K, ? extends V> e) {
644+
public static <K extends @NonNull Object, V extends @NonNull Object> Map.Entry<K, V> copyOf(Map.Entry<? extends K, ? extends V> e) {
645645
Objects.requireNonNull(e);
646646
if (e instanceof KeyValueHolder) {
647647
return (Map.Entry<K, V>) e;
@@ -1396,7 +1396,7 @@ static <K, V> Map<K, V> of() {
13961396
*
13971397
* @since 9
13981398
*/
1399-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1) {
1399+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1) {
14001400
return new ImmutableCollections.Map1<>(k1, v1);
14011401
}
14021402

@@ -1416,7 +1416,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1) {
14161416
*
14171417
* @since 9
14181418
*/
1419-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2) {
1419+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1, K k2, V v2) {
14201420
return new ImmutableCollections.MapN<>(k1, v1, k2, v2);
14211421
}
14221422

@@ -1438,7 +1438,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2)
14381438
*
14391439
* @since 9
14401440
*/
1441-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3) {
1441+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3) {
14421442
return new ImmutableCollections.MapN<>(k1, v1, k2, v2, k3, v3);
14431443
}
14441444

@@ -1462,7 +1462,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2,
14621462
*
14631463
* @since 9
14641464
*/
1465-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {
1465+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {
14661466
return new ImmutableCollections.MapN<>(k1, v1, k2, v2, k3, v3, k4, v4);
14671467
}
14681468

@@ -1488,7 +1488,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2,
14881488
*
14891489
* @since 9
14901490
*/
1491-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {
1491+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {
14921492
return new ImmutableCollections.MapN<>(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5);
14931493
}
14941494

@@ -1516,7 +1516,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2,
15161516
*
15171517
* @since 9
15181518
*/
1519-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
1519+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
15201520
K k6, V v6) {
15211521
return new ImmutableCollections.MapN<>(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5,
15221522
k6, v6);
@@ -1548,7 +1548,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2,
15481548
*
15491549
* @since 9
15501550
*/
1551-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
1551+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
15521552
K k6, V v6, K k7, V v7) {
15531553
return new ImmutableCollections.MapN<>(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5,
15541554
k6, v6, k7, v7);
@@ -1582,7 +1582,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2,
15821582
*
15831583
* @since 9
15841584
*/
1585-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
1585+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
15861586
K k6, V v6, K k7, V v7, K k8, V v8) {
15871587
return new ImmutableCollections.MapN<>(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5,
15881588
k6, v6, k7, v7, k8, v8);
@@ -1618,7 +1618,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2,
16181618
*
16191619
* @since 9
16201620
*/
1621-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
1621+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
16221622
K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9) {
16231623
return new ImmutableCollections.MapN<>(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5,
16241624
k6, v6, k7, v7, k8, v8, k9, v9);
@@ -1656,7 +1656,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2,
16561656
*
16571657
* @since 9
16581658
*/
1659-
static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
1659+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
16601660
K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10) {
16611661
return new ImmutableCollections.MapN<>(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5,
16621662
k6, v6, k7, v7, k8, v8, k9, v9, k10, v10);
@@ -1695,7 +1695,7 @@ static <K extends Object, V extends Object> Map<K, V> of(K k1, V v1, K k2, V v2,
16951695
*/
16961696
@SafeVarargs
16971697
@SuppressWarnings("varargs")
1698-
static <K extends Object, V extends Object> Map<K, V> ofEntries(Entry<? extends K, ? extends V>... entries) {
1698+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> ofEntries(Entry<? extends K, ? extends V>... entries) {
16991699
if (entries.length == 0) { // implicit null check of entries array
17001700
@SuppressWarnings("unchecked")
17011701
var map = (Map<K,V>) ImmutableCollections.EMPTY_MAP;
@@ -1751,7 +1751,7 @@ static <K extends Object, V extends Object> Map<K, V> ofEntries(Entry<? extends
17511751
* @see Map#ofEntries Map.ofEntries()
17521752
* @since 9
17531753
*/
1754-
static <K, V> Entry<K, V> entry(K k, V v) {
1754+
static <K extends @NonNull Object, V extends @NonNull Object> Entry<K, V> entry(@NonNull K k, @NonNull V v) {
17551755
// KeyValueHolder checks for nulls
17561756
return new KeyValueHolder<>(k, v);
17571757
}
@@ -1774,7 +1774,7 @@ static <K, V> Entry<K, V> entry(K k, V v) {
17741774
* @since 10
17751775
*/
17761776
@SuppressWarnings({"rawtypes","unchecked"})
1777-
static <K, V> Map<K, V> copyOf(Map<? extends K, ? extends V> map) {
1777+
static <K extends @NonNull Object, V extends @NonNull Object> Map<K, V> copyOf(Map<? extends K, ? extends V> map) {
17781778
if (map instanceof ImmutableCollections.AbstractImmutableMap) {
17791779
return (Map<K,V>)map;
17801780
} else {

0 commit comments

Comments
 (0)