0

我已经实现了一个名为 FormatUtils 的实用程序类(带有静态方法的 final),它将 Employee 对象中的数据转换为可用的格式(例如,剥离字符串中的“$”符号并将它们解析为双精度,将名称重新格式化为名字和姓氏)。现在,在我的代码中的某处,我需要一种方法来格式化大量 Employee 数据字段以输出为单个字符串(稍后发送到 stdout)。当它可能只需要与 Employee 对象一起使用而不是具有一般用途时,将它放在这个实用程序类中是否有意义?

4

2 回答 2

2

我可能会移动将单个格式化EmployeeEmployee类本身的方法。如果需要对员工列表进行不同/额外的格式化(例如行和列标题),我可能会将其放入实用程序方法(或类,如果需要重用)。

于 2013-04-09T20:27:10.003 回答
1

不要Employee#toString()用来为人类读者格式化它;仅使用该方法进行调试。否则,您可能无法使用类中的任何内容在调试器中显示其状态。我知道原始包装器和枚举toString()用于此目的,但这主要用于将它们与字符串连接一起使用。

“剥离'$'标志字符串并将它们解析为双打”是什么意思?您是否将员工的工资存储为字符串?不要那样做。总的来说,货币价值应该是BigDecimalBigInteger对象。格式化时使用美元符号NumberFormat.getCurrencyInstance()。它也使数据库工作更容易。

如果您正忙于将名称拆分为名字和姓氏,那么您确实需要一个Name类,并且应该为此提供格式化程序。对于 JPA 工作,您可以使 Name 实例变量@Embeddable

你可以给Employee类格式方法,或者你可以让你的类实现java.util.Formattable,可能接受替代格式标志。您甚至可以使用“getless 编程”并提供Employee如下方法:

public void writeToFormally(final Appendable a) {...}
public void writeToSimply(final Appendable a) {...}
于 2013-04-09T20:45:26.793 回答