本篇內(nèi)容主要講解“java.lang.ClassCastException報(bào)錯(cuò)怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“java.lang.ClassCastException報(bào)錯(cuò)怎么解決”吧!
在成都網(wǎng)站制作、成都做網(wǎng)站中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營銷成為有效果、有回報(bào)的無錫營銷推廣。創(chuàng)新互聯(lián)公司專業(yè)成都網(wǎng)站建設(shè)10多年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。
java.lang.ClassCastException: com.sun.proxy.$Proxy32 cannot be cast to com.bkc.bpmp.core.cache.MemcachedManager at com.bkc.bpmp.common.utils.CacheUtils.<clinit>(CacheUtils.java:11) at com.bkc.bpmp.modules.sys.controller.MainController.showCache(MainController.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:775) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
java 實(shí)現(xiàn)方式
public class MemcachedManager implements CacheManager
Spring 文檔中這么寫的:Spring AOP 部分使用JDK 動(dòng)態(tài)代理或者 CGLIB 來為目標(biāo)對(duì)象創(chuàng)建代理。如果被代理的目標(biāo)實(shí)現(xiàn)了至少一個(gè)接口則會(huì)使用JDK 動(dòng)態(tài)代理。所有該目標(biāo)類型實(shí)現(xiàn)的接口都將被代理。若該目標(biāo)對(duì)象沒有實(shí)現(xiàn)任何接口,則創(chuàng)建一個(gè)CGLIB 代理。
所以,解決辦法是,如果使用 JDK 動(dòng)態(tài)代理,就必須被代理的目標(biāo)實(shí)現(xiàn)一個(gè)接口(要注意的地方是,需要將 ctx.getBean()方法的返回值用接口類型接收);如果用CGLIB 強(qiáng)制代理,就必須事先將CGLIB 包導(dǎo)入項(xiàng)目,設(shè)置 beanNameAutoProxyCreator 的proxyTargetClass 屬性為true。
這里MemcachedManager 實(shí)現(xiàn)了接口CacheManager,所以會(huì)使用JDK動(dòng)態(tài)代理。
// 正確 private static CacheManager memcachedManager = (CacheManager)SpringContextHolder.getBean("shiroCacheManager"); MemcachedManager // 報(bào)錯(cuò) private static MemcachedManager memcachedManager = (MemcachedManager)SpringContextHolder.getBean("shiroCacheManager"); // 報(bào)錯(cuò) private static CacheManager memcachedManager = (MemcachedManager)SpringContextHolder.getBean("shiroCacheManager");
當(dāng)然,還有一種方法 是 CGLIB強(qiáng)制代理。需要在springContext.xml中增加如下配置:<aop:aspectj-autoproxy proxy-target-class="true"/>
但 事實(shí)上個(gè)人不建議 采用 proxy-target-class 設(shè)置為 true 的方式,因?yàn)?我們的項(xiàng)目結(jié)構(gòu)一般都會(huì)是 X extends BaseDao ,然后在BaseService 層中可能有Dao 層 @Autowared 時(shí),如果使用了這種層次,可能就出現(xiàn) 子類 注入 父類中,如果這里強(qiáng)制代理的話,會(huì)出錯(cuò)。
1.Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
2.Java具有簡單性、面向?qū)ο蟆⒎植际?、安全性、平臺(tái)獨(dú)立與可移植性、動(dòng)態(tài)性等特點(diǎn)。
3.使用Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。
到此,相信大家對(duì)“java.lang.ClassCastException報(bào)錯(cuò)怎么解決”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)站欄目:java.lang.ClassCastException報(bào)錯(cuò)怎么解決
新聞來源:http://aaarwkj.com/article4/ihhsoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站建設(shè)、App開發(fā)、定制網(wǎng)站、關(guān)鍵詞優(yōu)化、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)