не рекомендуется. использование

аюсь написатьMap строитель. Один из конструкторов позволит клиенту указать типMap они хотят построить

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
}

Намерение состоит в том, чтобы иметь возможность создавать экземпляры компоновщика с помощью:

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

или же

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

Кажется, что сигнатура типа аргумента конструктора в настоящее время не поддерживает это, потому что строка выше вызывает ошибку компиляции «Не удается разрешить конструктор».

Как я могу изменить свой конструктор так, чтобы он принимал классы, которые реализуютMap только?

Ответы на вопрос(3)

Ваш ответ на вопрос