我有一个图书馆,整个应用程序中我只需要一个配置。 我通过Helper类中对库的生成器的公共静态最终引用来调用该库中的方法。
从示意图上看,它是这样的:
public class Helper{
private static final Pattern a = ... ;
private static final Pattern b = ... ;
....
public static final Library.Renderer RENDERER = Library.getBuilder().
.add(a) // setting the configuration
.add(b) // of the renderer
...
.build();
}
然后,我从这样的其他地方调用该库中的方法
String processedText = Helper.RENDERER.render(rawText);
这是否意味着每次我调用静态RENDERER时,它都会一次又一次地添加和构建方法的所有过程?
注意:这与静态变量无关。它涉及静态对象初始化中包含的方法。因此,问题是static final RENDERER = ....
是指添加和构建过程,还是该添加和构建过程的最终结果。
答案 0 :(得分:1)
不,这仅被调用一次。 测试文件:
public static void main(String[] args) {
int verify = Static.var;
int verify2 = Static.var;
System.out.println("verify:"+verify);
System.out.println("Verify2:"+verify2);
}
和静态类:
public class Static {
public static int var = returnCount();
public static int count = 0;
public static int returnCount() {
count = count + 1;
return count;
}
}
结果:
verify:1
Verify2:1