Здравствуйте, Palmovod, Вы писали:
P>А с практической т.з. зачем надо делать Class.forName(...) ? Например при использовании JDBC драйвер (класс) загружают именно таким образом. Почему бы просто не создать экземпляр класса?
Его может не быть в classpath, на момент компиляции, вы не знаете какой драйвер вам надо загружать.
К тому же там есть JDBCшный глюк, связанный со статической инициализацией. Драйвер при загрузке должен сам себя прописать (DriverManager.registerDriver). Поэтому делают Class.forName, а драйвер в статическом блоке сам себя создает и прописывает.
Плюс ко всему — это не очень хорошая практика инициализации драйвера.
JDBC дравера лучше указывать в одном месте, в свойстве jdbc.drivers
http://javaalmanac.com/egs/java.sql/LoadDrivers.html