В статье о загрузке классов указано, что метод getClass()
не должен вызываться внутри конструктора, потому что
инициализация объекта будет завершена только при выходе из код конструктора.
Пример, который они дали:
public class MyClassLoader extends ClassLoader{
public MyClassLoader(){
super(getClass().getClassLoader()); // should not call getClass() because object
// initialization will be complete only at
// the exit of the constructor code.
}
}
Однако из того, что я знаю, собственный окончательный метод getClass()
всегда будет возвращать объект java.lang.Class
этого экземпляра объекта, независимо от того, где он вызвал (в пределах конструктор или нет).
Будет ли вызов getClass()
внутри конструктора когда-либо дать нам проблемы?
Если да, то каковы некоторые примеры, по которым вызов getClass()
внутри конструктора даст нам ошибки?