Тип, который вы написали, Hashtable<String,? extends IMyInterface>
означает Hashtable, который хранит в качестве значений элементы некоторого подтипа IMyInterface
, но мы не знаем, какой из них .Это приемлемо для типа переменной (и тогда вы не можете добавить к нему какие-либо ключи, так как компилятор не может быть уверен, что вы используете правильный подтип), но это не пригодно для вызова конструктора.
То, что вы хотите - это Hashtable<String, IMyInterface>
, что означает любой объект, реализующий IMyInterface , может быть значением.
Кстати, лучше использовать Map<String, IMyInterface>
для переменной и HashMap<String, IMyInterface>
для конструктора вместо Hashtable
.