在 Java 编程中,将对象转换为字符串(或字符串化)可能引起问题,除非您记住在纯粹的面向对象应用程序中很少使用字符串表示法。在本文中,系统分析员兼程序员 Fernando Ribeiro 以 Eric Allen 的错误模式概念为基础建立了其观点,并说明了错误的字符串化是如何成为错误模式的;他讨论了对这种难以捉摸的缺陷的诊断并解释了类型安全的好处。
字符串化是从对象到字符串的转换,而对于本文,错误的字符串化是指对 String 类的不恰当的类型转换。例如,本文中的示例将向您展示产品代码很少是字符串,但许多开发人员会将其类型转换为 String 类,因而将危及面向对象编程中的多态性的广泛用途。
尽管看起来只是样式问题(因为错误字符串化“错误模式”的一个隐蔽属性就是:它在任何时候(即使是测试时)都不引起任何错误),但避免对 String 类进行不恰当的类型转换可以使您充分利用 Java 语言内在的多态性特性。在实践方面,避免这种模式是防止它的最佳方法,而避免它的最佳方法是为您代码中的大多数元素定义一个特定的类型。通过这样做,您确保了每个类的类型适合于其任务,从而确保了系统的可靠性。这个解决方案会对您的系统性能增加一些开销,但换来的是一个可靠得多的系统。
在本文中,我们将在企业系统环境中讨论这个模式,并且将研究一种检测这种错误的方法:方法的错误重载。(我们不会在本文中过多地讨论修改错误,因为,简单地避免使用字符串表示是解决该问题最佳和最常见的方法。)
聚焦 String 不恰当的类型转换
我喜欢和研究错误模式一样来研究不恰当地将类型转换为 String 类这一问题。因此,让我们将这种问题称为错误字符串化错误模式。
在 Java 编程中,将对象转换为字符串(或字符串化)可能引起问题,除非您记住在纯粹的面向对象应用程序中很少使用字符串表示法。在本文中,系统分析员兼程序员 Fernando Ribeiro 以 Eric Allen 的错误模式概念为基础建立了其观点,并说明了错误的字符串化是如何成为错误模式的;他讨论了对这种难以捉摸的缺陷的诊断并解释了类型安全的好处。
字符串化是从对象到字符串的转换,而对于本文,错误的字符串化是指对 String 类的不恰当的类型转换。例如,本文中的示例将向您展示产品代码很少是字符串,但许多开发人员会将其类型转换为 String 类,因而将危及面向对象编程中的多态性的广泛用途。
尽管看起来只是样式问题(因为错误字符串化“错误模式”的一个隐蔽属性就是:它在任何时候(即使是测试时)都不引起任何错误),但避免对 String 类进行不恰当的类型转换可以使您充分利用 Java 语言内在的多态性特性。在实践方面,避免这种模式是防止它的最佳方法,而避免它的最佳方法是为您代码中的大多数元素定义一个特定的类型。通过这样做,您确保了每个类的类型适合于其任务,从而确保了系统的可靠性。这个解决方案会对您的系统性能增加一些开销,但换来的是一个可靠得多的系统。
在本文中,我们将在企业系统环境中讨论这个模式,并且将研究一种检测这种错误的方法:方法的错误重载。(我们不会在本文中过多地讨论修改错误,因为,简单地避免使用字符串表示是解决该问题最佳和最常见的方法。)
聚焦 String 不恰当的类型转换
我喜欢和研究错误模式一样来研究不恰当地将类型转换为 String 类这一问题。因此,让我们将这种问题称为错误字符串化错误模式。