在子类构造函数中调用 getClass() 是否始终安全?
2022-09-03 07:28:44
一篇关于类加载的文章指出,方法 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.
}
}
但是,据我所知,本机 final 方法将始终返回该对象实例的 java.lang.Class
对象,无论它在何处调用(是否在构造函数中)。getClass()
在构造函数中调用会给我们带来问题吗?getClass()
如果是这样,在构造函数中调用会给我们带来错误的例子是什么?getClass()