在 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