作者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://webptt.com/cn.aspx?n=bbs/java/M.1397469990.A.B3D.html
1F:推 justin761002:谢谢,你的文章让我豁然开朗 04/14 20:29
2F:→ justin761002:extends Validator 一定要实作两个东西 04/14 20:34
3F:→ justin761002:boolean supports(Class<?> clazz)和 04/14 20:39
4F:→ justin761002:void validate(Object target,Errors errors) 04/14 20:40
5F:→ justin761002:Errors有许多的reject方法可以储存要回传的错误讯息 04/14 20:42
6F:→ justin761002:的确是不需要 return 的 04/14 20:48
7F:→ justin761002:修正:是 implements Validator 04/15 12:34