### Question:
KeyStringValueItem implements KeyValueItem<K, String> { public static <K> KeyStringValueItem<K> keyValue(K key, String value) { return new KeyStringValueItem<>(key, value); } protected  KeyStringValueItem(K key, String value); @Override K getKey(); @Override String getValue(); static KeyStringValueItem<K> keyEmptyValue(K key); static KeyStringValueItem<K> keyValue(K key, String value); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object other);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void invalid() { KeyStringValueItem.keyValue(null, "Chuck"); }