Отражение только найдет методы, которые фактически объявлены.Если объявлено, что конструктор принимает List
, это единственный конструктор.Там нет такого понятия, как «сопоставление конкретного экземпляра» при использовании отражения.Если бы у вас было двух конструкторов, один из которых брал List
, а другой - ArrayList
, то вы могли бы получить любой из них через getConstructor
.
Я не понимаю, почему вы думаете, что вынужно это.Если вы вызываете newInstance
, а затем используете getConstructor
для объявленного типа List
, вы можете передать ему экземпляр ArrayList
.