Fernando Ribeiro(fribeiro@bol.com.br)
顧問
2002 年 10 月
在 Java 編程中,將對象轉(zhuǎn)換為字符串(或字符串化)可能引起問題,除非您記住在純粹的面向?qū)ο髴?yīng)用程序中很少使用字符串表示法。在本文中,系統(tǒng)分析員兼程序員 Fernando Ribeiro 以 Eric Allen 的錯誤模式概念為基礎(chǔ)建立了其觀點,并說明了錯誤的字符串化是如何成為錯誤模式的;他討論了對這種難以捉摸的缺陷的診斷并解釋了類型安全的好處。
字符串化是從對象到字符串的轉(zhuǎn)換,而對于本文,錯誤的字符串化是指對 String 類的不恰當?shù)念愋娃D(zhuǎn)換。例如,本文中的示例將向您展示產(chǎn)品代碼很少是字符串,但許多開發(fā)人員會將其類型轉(zhuǎn)換為 String 類,因而將危及面向?qū)ο缶幊讨械亩鄳B(tài)性的廣泛用途。
context Product::hashCode() : int post:
let code : String = self.getCode() in
if code.oclIsUndefined() then
result = 0;
else
result = code.hashCode();
end if