代码如下:
JsonResult resultData = new JsonResult();
CSUserDetail userdetail = (CSUserdetail) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if(UserDetail != null){
…
}
如上述代码,在CSUserdetail时会报错ClassCastException转型异常,说不能把java.lang.String类型转换为CSUserdetail类型,但是如下写法却是可以的,请看:
JsonResult resultData = new JsonResult();
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if(principal != null){
CSUserdetail userdetail = (CSUserdetail) principal;
…
}
这样写又行了,为啥不能先强转再判断啊?求大神给出正确的解释!!!