driver-core/src/main/com/mongodb/MongoCompressor.java
@SuppressWarnings("unchecked")
    @Nullable
    public <T> T getProperty(final String key, final T defaultValue) {
        notNull("key", key);

        T value = (T) properties.get(key.toLowerCase());
        return (value == null && !properties.containsKey(key)) ? defaultValue : value;
    }
@SuppressWarnings("unchecked")
    @Nullable
    public <T> T getProperty(final String key, final T defaultValue) {
        notNull("key", key);

        T value = (T) properties.get(key.toLowerCase());
        return (value == null && !properties.containsKey(key)) ? defaultValue : value;
    }
Gets the property with the given key.

@param key the key
@param defaultValue the default value
@param <T> the property value type
@return the property value, or the default value if the property is not defined