在一个 Android 示例类中,有这个方法:
static {
addItem(...);
}
当我引用该类时,确实添加了这些项目。我从来没有见过这样的方法,a。这怎么叫和b。我想每当引用该类时(或第一次引用它)都会调用此方法?
这被调用static initializer
并且其中的代码仅在类加载时被调用一次。
是的,这是静态初始化块,只有在加载类时才会加载,如 Fouad 所说。如果您想在需要时执行静态块内的功能,则可以添加私有静态方法。看看这里
这不是一种方法。它是一个static initializer
. 这是一种在类加载时静态地做一些工作的方法,比如设置一些数据。
考虑一下:
static List<String> neverChangingNames;
static {
neverChangingNames = new ArrayList<String>();
neverChangingNames.add("Thomas");
neverChangingNames.add("Derek");
neverChangingNames.add("Michael");
neverChangingNames = Collections.unmodifiableList(neverChangingNames);
}