在Android示例类中,使用以下方法:
static {
addItem(...);
}
当我引用该类时,确实添加了这些项目。我从未见过像这样的方法,a。怎么称呼和b。我想只要引用类(或第一次引用它),就会调用此方法?
答案 0 :(得分:9)
这称为static initializer
,其中的代码仅在类加载时调用一次。
答案 1 :(得分:1)
是的,这是静态初始化块,只有在加载类时才会加载,如Fouad所说。如果要在静态块内执行功能,则可以添加私有静态方法。看看here
答案 2 :(得分:0)
这不是一种方法。这是static initializer
。这是一种在类加载时静态地完成一些工作的方式,比如设置一些数据。
考虑一下:
static List<String> neverChangingNames;
static {
neverChangingNames = new ArrayList<String>();
neverChangingNames.add("Thomas");
neverChangingNames.add("Derek");
neverChangingNames.add("Michael");
neverChangingNames = Collections.unmodifiableList(neverChangingNames);
}