Preference(首选项)保存配置文件的调查
获得首选项的默认为
public String get(String key, String defaultValue, Preferences[] nodes)/* */ {/* 457 */ if (nodes == null)/* 458 */ return defaultValue;/* 459 */ for (int i = 0; i < nodes.length; ++i) {/* 460 */ Preferences node = nodes[i];/* 461 */ if (node != null) {/* 462 */ String result = node.get(key, null);/* 463 */ if (result != null)/* 464 */ return result;/* */ }/* */ }/* 467 */ return defaultValue;利用Preferences中保存的信息,根据key获取value
后记、
preference 机制由 org.eclipse.core.runtime 插件提供,可保持的值类型包括:boolean, byte[], long, int, String, float, double。这些值保存在如下图所示的结构中:
Eclipse 运行时环境定义了三种基本的 scope:
(1)Instance scoped:单个 workspace 或者 eclipse 实例范围
(2)Configuration scoped:eclipse configuration 范围内的多个实例共享 preference
(3)Default scoped:描述 preference 的默认值,由 plugin 和 product 初始文件进行定义,而不能被 eclipse 运行时修改和存储。
注意:只有eclipse退出后,才会自动保存。、、、
不正常的退出不会保存、、断电或者任务管理器中的强制退出、、、
之前一直以为会在PreferenceStore初始化的时候加载配置文件,其实是在getString()的时候,调用AbstractScope的方法getNode()返回IEclipsePreferences对象,里面有配置信息,然后根据这个对象获得配置信息。