PreferenceStore存不进数据

PreferencePage配合PreferenceStore确实是一种解决选项配置问题的极佳办法。


但是PreferenceStore是有很多缺陷的,不晓得广大Java同行是怎么应用这玩意的。但是我的用法很特别,一个PreferencePage的实例中关联了两个PreferenceStore。这时,问题来了,Override的performApply()和performOk()两个函数,或者performOk()一个函数内必须同时有关于这两个PreferenceStore的save()方法,否则,Apply按钮就成了个摆设,这是相当的蛋疼的.....因为总页面的OK按钮不用Override的.....@@


另外,最讨厌的一点来自PreferenceStore本身,用了好长一段时间以后发现,它自带的setDefault(String,String)函数并没有想象中的好用,因为在PreferenceStore关联的配置文件中,如果你get一个不存在的key,而正好default值域里有这个key,那么它会返回这个default key value,这是很正常的,但是最关键的是,这种方式反过来也成立,也就是说,如果你的*.properties文件中没有这个key,但是你的default值域里有这个key,但是你想通过PreferenceStore.save()存入一个这个key,且value等于default里面这个key的value,那么你惨了,因为这个key根本存不进去,如果你的value不等于default里面这个key的value,反倒是可行的。经过反复实验,我终于屈服了,放弃使用setDefault,将default值都存入一个自定义的default ArrayList,不晓得大家有什么更好的办法没?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值