Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 没有名称的静态方法_Java_Android_Class_Static - Fatal编程技术网

Java 没有名称的静态方法

Java 没有名称的静态方法,java,android,class,static,Java,Android,Class,Static,在Android示例类中,有以下方法: static { addItem(...); } 当我引用该类时,确实添加了项。我从来没有见过这样的方法,a。这叫什么,b。我假设每当引用类时(或第一次引用时)都会调用此方法。这称为静态初始值设定项,并且在类加载时只调用一次其中的代码。这不是一个方法。它是一个静态初始值设定项。这是一种静态地在类负载上执行某些工作的方法,比如设置一些数据 考虑这一点: static List<String> neverChangingN

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

static {        
    addItem(...);
}

当我引用该类时,确实添加了项。我从来没有见过这样的方法,a。这叫什么,b。我假设每当引用类时(或第一次引用时)都会调用此方法。

这称为
静态初始值设定项,并且在类加载时只调用一次其中的代码。

这不是一个方法。它是一个
静态初始值设定项
。这是一种静态地在类负载上执行某些工作的方法,比如设置一些数据

考虑这一点:

static List<String> neverChangingNames;

static {
  neverChangingNames = new ArrayList<String>();
  neverChangingNames.add("Thomas");
  neverChangingNames.add("Derek");
  neverChangingNames.add("Michael");
  neverChangingNames = Collections.unmodifiableList(neverChangingNames);
}
静态列表不更改名称;
静止的{
neverChangingNames=newArrayList();
不要更改姓名。添加(“托马斯”);
不要更改名称。添加(“Derek”);
不要更改姓名。添加(“迈克尔”);
neverChangingNames=集合。不可修改列表(neverChangingNames);
}

是,这是静态初始化块,只有在类加载时才会加载,正如Fouad所说。如果希望在需要时在静态块内执行功能,可以添加私有静态方法。看一看