protected Object getDefaultKey() {
        Object key;

        if (keyType == String.class) {
            key = DEFAULT_STRING_KEY;
        } else if (keyType == UUID.class) {
            key = DEFAULT_UUID_KEY;
        } else if (keyType == Byte.class) {
            key = Byte.valueOf((byte) 1);
        } else if (keyType == Short.class) {
            key = Short.valueOf((short) 1);
        } else if (keyType == Integer.class) {
            key = Integer.valueOf(1);
        } else if (keyType == Long.class) {
            key = Long.valueOf(1L);
        } else if (keyType == Float.class) {
            key = Float.valueOf(1F);
        } else if (keyType == Double.class) {
            key = Double.valueOf(1D);
        } else if (keyType == BigInteger.class) {
            key = BigInteger.ONE;
        } else if (keyType == BigDecimal.class) {
            key = BigDecimal.ONE;
        } else {
            throw new IllegalArgumentException("Unsupported key type: " + keyType);
        }

        return key;
    }
Update value of the given object or create a new instance if {@code ref} is
null.

@param ref       object to update, could be null
@param value     value
@param keyType   non-null class of key
@param valueType non-null class of value
@return same object as {@code ref} or a new instance if it's null
clickhouse-data/src/main/java/com/clickhouse/data/value/ClickHouseMapValue.java