使用IPreferenceStore
正确的方法来存储用于绘制视图的几个经常访问的java对象吗?我想为我的RCP应用程序提供类似“自定义应用程序缓存”的东西
答案 0 :(得分:3)
IPreferenceStore
用于存储首选项!通常情况下,您只会在此处存储将出现在首选项页面上的内容 - 尽管没有任何内容可以强制执行此操作。
对于更常规的存储空间,使用Platform.getStateLocation(bundle)
获取工作区.metadata
中的位置,您的插件可以在其中存储所需的任何信息:
Bundle bundle = Platform.getBundle("your-plugin-id");
IPath stateLocPath = Platform.getStateLocation(bundle);
stateLocPath
将是一个目录(通常是workspace-path/.metadata/.plugins/your-plugin-id
)。您的插件可以管理存储在此目录中的文件。
如果您不需要跨会话持久保存对象,则可以使用普通的Java结构(如列表或地图)作为插件Activator
中的字段。