楼主:
PsMonkey (痞子军团团长)
2014-04-14 18:06:27先说,我根本不会 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 基础打好再开始吗?