缺少 JFace 浮动字段编辑器

Missing JFace floating FieldEditor

我正在将一个大型 Java 应用程序移植到 Eclipse 4.x RCP 中。我一直在使用各种 JFace 类,尤其是一些偏好功能,而不是 Eclipse 或 OSGI 偏好选择。

为什么 JFace PreferenceStore 没有 BigDecimal/Decimal/double/float pref?来自默认实施的 FieldEditors eclipse.org 网站:

org.eclipse.jface.preference.FieldEditor

org.eclipse.jface.preference.BooleanFieldEditor
org.eclipse.jface.preference.ColorFieldEditor
org.eclipse.jface.preference.ComboFieldEditor
org.eclipse.jface.preference.FontFieldEditor
org.eclipse.jface.preference.ListEditor
    org.eclipse.jface.preference.PathEditor
org.eclipse.jface.preference.RadioGroupFieldEditor
org.eclipse.jface.preference.ScaleFieldEditor
org.eclipse.jface.preference.StringFieldEditor
    org.eclipse.jface.preference.IntegerFieldEditor
    org.eclipse.jface.preference.StringButtonFieldEditor
        org.eclipse.jface.preference.DirectoryFieldEditor
        org.eclipse.jface.preference.FileFieldEditor

人们都为双打手动编写子类吗?有没有常用的实现?好像我遗漏了一些东西......在我的具体情况下,我需要美元偏好,比如定价或每件商品的成本,所以我恰好需要“6.99 美元”作为价格偏好,需要使用 epsilon 或精度为 2以 10 为基数。

我们不是 JFace 的设计者,所以我们无法告诉您他们为什么不做某事。

对于货币,您应该坚持 BigDecimaldoublefloat 不适用于货币 - 请参阅 here

要将 BigDecimal 存储为首选项,您必须将其存储为 String。您可以扩展 StringFieldEditor class 并覆盖 doCheckState 方法来检查字符串是否是有效的大十进制值。