Если вы не знаете, какие классы доступны, и какой у них интерфейс, у вас нет или очень мало возможностей их использовать (люди с трудом знают интерфейс)
Обычно эти модули «расширения» кодируются для определенного интерфейса, поэтому у новых загруженных классов всегда будут определенные методы (т. Е. Драйвер JDBC всегда ожидает найти реализацию PreparedStatement
, ResultSet
и т. Д. И т. Д. И т. Д.) когда он не знает, что еще под ним)
В вашем случае, и если вы хотите загружать и использовать произвольные классы, единственный оставшийся ресурс, который я вижу, - это предоставить некоторый механизм для добавления языка сценариев (такого как Groovy, Jython или JRuby) и кода в обнаруженный интерфейс.