Re[7]: Class.forName
От: aefimov Россия
Дата: 14.09.06 11:33
Оценка:
Здравствуйте, Palmovod, Вы писали:

P>А с практической т.з. зачем надо делать Class.forName(...) ? Например при использовании JDBC драйвер (класс) загружают именно таким образом. Почему бы просто не создать экземпляр класса?


Его может не быть в classpath, на момент компиляции, вы не знаете какой драйвер вам надо загружать.
К тому же там есть JDBCшный глюк, связанный со статической инициализацией. Драйвер при загрузке должен сам себя прописать (DriverManager.registerDriver). Поэтому делают Class.forName, а драйвер в статическом блоке сам себя создает и прописывает.

Плюс ко всему — это не очень хорошая практика инициализации драйвера.
JDBC дравера лучше указывать в одном месте, в свойстве jdbc.drivers

http://javaalmanac.com/egs/java.sql/LoadDrivers.html
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.