此类分配会导致全局状态,使得在测试中无法删除一个应用程序并设置另一个应用程序,因此,同一进程中的重复测试可能会失败。 唯一的例外是用来存储虚拟/默认实例的显式构造函数调用。
避免存储服务的推荐方式是在本地检索服务或将其包装在 java.util.function.Supplier 中。
示例:
// 不正确的方式
private static final ManagingFS ourInstance = ApplicationManager.getApplication().getService(ManagingFS.class);
// 正确的方式
private static final Supplier<ManagingFS> ourInstance = CachedSingletonsRegistry.lazy(() -> {
return ApplicationManager.getApplication().getService(ManagingFS.class);
});
// 例外
private static final UniqueVFilePathBuilder DUMMY_BUILDER = new UniqueVFilePathBuilder()
2023.2 最新变化