没有名称的静态方法

时间:2013-06-05 07:35:09

标签: java android class static

在Android示例类中,使用以下方法:

static {        
    addItem(...);
}

当我引用该类时,确实添加了这些项目。我从未见过像这样的方法,a。怎么称呼和b。我想只要引用类(或第一次引用它),就会调用此方法?

3 个答案:

答案 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);
}