Вы не можете сделать это в точности так, потому что для оценки Impl1.class
указанный класс должен быть доступен (т.е. загружен). Однако вы можете попробовать загрузить определенный класс по имени
Class aClass = classLoader.forName("Impl1");
Если это не дает сбоя (сгенерировать исключение), вы можете создать экземпляр этого класса, используя newInstance()
.
Конечно, чтобы иметь возможность использовать ваш класс, вы должны убедиться, что он реализует интерфейс, который известен во время компиляции. В этом случае вы можете привести созданный объект к этому типу интерфейса и продолжить его использование.
В этой статье приведен пример кода.