默认情况下,Sun的JVM既懒加载类,又懒初始化(即调用其<clinit>方法)。考虑以下类ClinitBomb,其中在static{}块中抛出一个Exception。public class ClinitBomb { static { explode();...
你可能会问,为什么我想这么做 - 因为我正在使用一个类(来自外部库),它会在其静态初始化器中执行某些操作,而我需要知道它是否已经完成。 我查看了 ClassLoader,但没有找到任何看起来有用的东西。你有什么想法吗?
我有一个由类实现的接口,用于执行文件处理,比如搜索或其他操作。public interface FileProcessorInterface { public void processFile(String fileName); } 然后我针对每种文件类型都有不同的实现:publi...
我最近遇到了这个警告(VC++ 2010) warning LNK4210: .CRT 部分存在;可能存在未处理的静态初始化程序或终止程序。 我认为这是临界区的问题。自从学习操作系统课程以来已经有一段时间了,所以我无法确定其确切含义。如果我没记错,临界区与共享资源有关。那么这个警告与什么相...
我知道根据C++03标准,函数作用域静态初始化不保证线程安全:void moo() { static std::string cat("argent"); // not thread safe ... } 随着C++0x标准最终提供了标准线程支持,函数范围内的静态初始化是否需...
我已经重构了一个类并将一些代码从构造函数移到了静态初始化器中。我应该如何处理原来在构造函数上的javadoc?是否可以在静态初始化器上添加javadoc?
我这里有几个类,如下所示: public class TrueFalseQuestion implements Question{ static{ QuestionFactory.registerType("TrueFalse", "Question"); }...
一旦一个类被加载,是否有办法再次调用静态初始化器? public class Foo { static { System.out.println("bar"); } } 编辑: 我需要调用静态初始化器,因为我没有编写原始类,并且我需要调用的逻辑是在静...