在 Java 编程中,将对象转换为字符串(或字符串化)可能引起问题,除非您记住在纯粹的面向对象应用程序中很少使用字符串表示法。在本文中,系统分析员兼程序员 Fernando Ribeiro 以 Eric Allen 的错误模式概念为基础建立了其观点,并说明了错误的字符串化是如何成为错误模式的;他讨论了对这种难以捉摸的缺陷的诊断并解释了类型安全的好处。 字符串化是从对象到字符串的转换,而对于本文,错误的字符串化是指对 String 类的不恰当的类型转换。例如,本文中的示例将向您展示产品代码很少是字符串,但许多开发人员会将其类型转换为 String 类,因而将危及面向对象编程中的多态性的广泛用途。
context Product::hashCode() : int post: let code : String = self.getCode() in if code.oclIsUndefined() then result = 0; else result = code.hashCode(); end if