2013-11-07 6 views
-4

В чем разница между Class.forName("Something"); и Class.forName("Something").newInstance(); Просьба уточнить меня.Разница между Class.forName («Что-то») и Class.forName («Что-то»). NewInstance();

+0

Разница заключается в вызове 'newInstance()' очевидно. Итак, почему вы не смотрите на документацию по этому методу, чтобы узнать, что он делает? – Holger

ответ

10
Class.forName("Somthing"); 

просто загружает класс в памяти

Class.forName("Somthing").newInstance(); 

загружает класс в памяти и создает экземпляр класса, представленного загруженного Class.

+3

супер, короткий и точный –

+0

@Juned Ahsan и почему нам нужно просто загрузить класс. можете ли вы объяснить – subash

+0

@subash, чтобы инициализировать некоторый ресурс в момент загрузки класса i.e внутри статических блоков класса. –

0

Class.forName просто загружает класс и метод newInstance запускает новый объект

Class myclass = Class.forName("someClass"); // Load the class 
someClass obj = (someClass) myclass.newInstance(); // someClass obj = new someClass() 
2

1: если вы заинтересованы только в статическом блоке класса, загрузке класс только будет делать, и будет выполнять статические блоки то все, что вам нужно, это

Class.forName("Somthing"); 

2: если вы заинтересованы в загрузке класса, выполнить свой статический bloacks, а также хочет, чтобы получить доступ к его своему несогласию статической части, то вам нужен экземпляр , а затем вам необходимо

Class.forName("Somthing").newInstance(); 
Смежные вопросы