格式化的实用程序类

时间:2013-04-09 20:22:02

标签: java class utility

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

2 个答案:

答案 0 :(得分:2)

我可能会将方法设置为将Employee格式化为Employee类本身。如果需要对员工列表进行不同/额外的格式化(例如行和列标题),我可能会将其放在实用程序方法(或类,如果需要重用)中。

答案 1 :(得分:1)

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

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

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

您可以提供Employee类格式方法,也可以让您的类实现java.util.Formattable,可能接受替代格式标记。您甚至可以使用“无法编程”并提供Employee方法,例如:

public void writeToFormally(final Appendable a) {...}
public void writeToSimply(final Appendable a) {...}