作者PsMonkey (痞子軍團團長)
看板java
標題Re: [問題] 型別轉換、Spring Validator 等問題
時間Mon Apr 14 18:06:27 2014
先說,我根本不會 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
推 justin761002:謝謝,你的文章讓我豁然開朗 04/14 20:29
→ justin761002:extends Validator 一定要實作兩個東西 04/14 20:34
→ justin761002:boolean supports(Class<?> clazz)和 04/14 20:39
→ justin761002:void validate(Object target,Errors errors) 04/14 20:40
→ justin761002:Errors有許多的reject方法可以儲存要回傳的錯誤訊息 04/14 20:42
→ justin761002:的確是不需要 return 的 04/14 20:48
→ justin761002:修正:是 implements Validator 04/15 12:34