Re: [問題] 型別轉換、Spring Validator 等問題

看板java作者 (痞子軍團團長)時間11年前 (2014/04/14 18:06), 編輯推噓1(106)
留言7則, 1人參與, 最新討論串2/2 (看更多)
先說,我根本不會 Spring 只是被人覺得話講一半,這的確不太好 那我就只好來佔個版面 [被毆飛] 萬一 Spring 真的那麼神的話,還麻煩各方大德指正 ※ 引述《justin761002 (JiMing)》之銘言: : BreakingValidator.java : import org.springframework.validation.Validator; : public class BreakingNewsValidator implements Validator { : ... : public void validate(Object target, Errors errors) { : ((Breaking) Breaking.class).getBreakingUrl(); : //錯誤訊息 Cannot cast from Class<Breaking> to Breaking : } : } `Breaking.class` 會回傳 `java.lang.Class` 就算不知道這玩意是什麼(其實我也搞不太清楚 [喂喂]) 至少也非常能確定,他絕對不是某個 `Breaking` 這個 class 的 instance 那麼詭異點就有兩個: 1. 你把一個不是 `Breaking` 的 instance 硬轉成 `Breaking`? 這不出問題的或然率小於 0 阿 [喂喂] 2. 就算上頭 1 不是問題好了 那麼 `Breaking.class` 這玩意怎麼看都不會是你要 valid 的東西吧? 或著說,你不覺得 `Breaking.class` 看起來就像常數值 / 固定內容 根本不會隨著不知道在哪輸入的輸入值而改變嗎? Spring 好像很厲害,但是應該沒有厲害到這種詭異的程度吧? 再者,從變數名稱看起來,也就是這行 public void validate(Object target, Errors errors) 單純望文生義來猜 這大概是 `Validator` 要 override 的 method 要 validate 的東西應該是塞在 `target` 然後 validate 不過的部份,可以塞在 `errors` 裡頭 讓 caller 可以進一步處理? 最後,我是不知道你為了什麼開始學 Spring 只是... 可以先把 Java 基礎打好再開始嗎? -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.88.140 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1397469990.A.B3D.html

04/14 20:29, , 1F
謝謝,你的文章讓我豁然開朗
04/14 20:29, 1F

04/14 20:34, , 2F
extends Validator 一定要實作兩個東西
04/14 20:34, 2F

04/14 20:39, , 3F
boolean supports(Class<?> clazz)和
04/14 20:39, 3F

04/14 20:40, , 4F
void validate(Object target,Errors errors)
04/14 20:40, 4F

04/14 20:42, , 5F
Errors有許多的reject方法可以儲存要回傳的錯誤訊息
04/14 20:42, 5F

04/14 20:48, , 6F
的確是不需要 return 的
04/14 20:48, 6F

04/15 12:34, , 7F
修正:是 implements Validator
04/15 12:34, 7F
文章代碼(AID): #1JIxCciz (java)
文章代碼(AID): #1JIxCciz (java)