Restringir un parámetro de clase genérico a las clases que implementan Map

Estoy tratando de escribir unMap constructor. Uno de los constructores permitirá al cliente especificar el tipo deMap desean construir

public class MapBuilder<K, V> {

    private Map<K, V> map;

    /**
     * Create a Map builder
     * @param mapType the type of Map to build. This type must support a default constructor
     * @throws Exception
     */
    public MapBuilder(Class<? extends Map<K, V>> mapType) throws Exception {
        map = mapType.newInstance();
    }

    // remaining implementation omitted
}

La intención es que debería ser posible construir instancias del constructor con:

MapBuilder<Integer, String> builder = new MapBuilder<Integer, String>(LinkedHashMap.class);

MapBuilder<Integer, String> builder = new MapBuilder<Integer, String>(HashMap.class);

Parece que la firma de tipo del argumento del constructor no admite esto actualmente, porque la línea anterior provoca un error de compilación "No se puede resolver el constructor".

¿Cómo puedo cambiar mi constructor para que acepte clases que implementanMap ¿solamente

Respuestas a la pregunta(3)

Su respuesta a la pregunta