国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java根據不同的參數調用不同的實現類操作

瀏覽:5日期:2022-08-24 08:54:08

本猿今天今天幫公司寫第三支付接口的時候,靈機一動就想寫一個擴展性比較的強的充值接口,t通過選擇不同的充值渠道,調用不同的充值實現類(好了,廢話不多說了,上碼!!!!!)

首先你得寫一個接口(樓主用的框架是springMVC +Spring +嘿嘿)PayService

java根據不同的參數調用不同的實現類操作

然后寫你的PayService實現類 EcpssPayService(第三方接口實現類)和 ReapalPayService(第三方接口實現類) 注意幾點(注解一定得跟上)

java根據不同的參數調用不同的實現類操作

好了之后 就可以 寫一個工具類了 SpringBeanUtil(這其中至于違背了Spring的 依賴注入思想 慎用什么的 我只想說你愛用不用 嘿嘿)

java根據不同的參數調用不同的實現類操作

寫好了之后(ok完工了), 接下來你就可以在Controller中調用了(你通過前端傳過來的參數payWay來調用不同的實現類:比如說我傳過來的是reapal

那么就掉用ReapalService類,傳過來的是ecpss那么就調用EcpssPayService!).

java根據不同的參數調用不同的實現類操作

最后再說下你的實現類一定是在Spring 加載掃描包的時候能掃描到,否則你就Duang了如果爆了類未定義少年那只能說明你還年輕 嘿嘿 去看看applicationContext.xml如下

java根據不同的參數調用不同的實現類操作

看看component-scan 有沒有掃描到你的兩個實現類的包的路徑 over!!!!

補充知識:在java類中實現不同接口的同名方法時,該方法屬于哪個接口?

存在這樣一種情況,有一個類實現了兩個接口,在這兩個接口當中有相同的方法(同名同參),那么類中的該實現方法屬于哪個接口的呢?

public interface InterfaceA { void method(); void methodA();}public interface InterfaceB { void method(); void methodB();}public class Subject implements InterfaceA, InterfaceB { @Override public void method() { } @Override public void methodB() { } @Override public void methodA() { }}

Subject類實現了InterfaceA和InterfaceB兩個接口的方法,其中method是InterfaceA和InterfaceB共用的相同方法,那么Subject類中實現的該方法是屬于哪個接口的呢?

答案是既是InterfaceA的也是InterfaceB的,什么意思?就是說此時的Subject類你既可以把它當做InterfaceA來使用其中的method方法,也可以把它當做InterfaceB來使用其中的method方法。

Java對于implements的要求是只要在接口中聲明的方法,在實現類中必須要實現它,單看Subject 類,它里面具有method和methodA兩個方法,因此它就是實現了InterfaceA接口所有方法的實現類,同時它里面具有method和methodB兩個方法,因此它也是實現了InterfaceB接口所有方法的實現類。

因此,在使用Subject 類的時候,如果你認為它是InterfaceA,那它就是InterfaceA,如果你為它是InterfaceB,那它就是InterfaceB。

所以可以像下面這樣去使用它,完全沒有問題:

public class Main { public static void main(String[] args) { //我現在認為它是一個InterfaceA實現類, 就把它當做一個InterfaceA接口來使用 InterfaceA interfaceA = new Subject(); interfaceA.method(); interfaceA.methodA(); test(interfaceA); //我現在認為它是一個InterfaceB實現類, 就把它當做一個InterfaceB接口來使用 InterfaceB interfaceB = new Subject(); interfaceB.method(); interfaceB.methodB(); //下面都是完全沒問題的 Subject subject = new Subject(); subject.myMethod(); //當成InterfaceA用 interfaceA = subject; interfaceA.method(); interfaceA.methodA(); //當成InterfaceA用的過程中又可以當成InterfaceB用 interfaceB = subject; interfaceB.method(); interfaceB.methodB(); //當成InterfaceB用的過程中又可以再當成InterfaceA用 interfaceA = (InterfaceA) interfaceB; interfaceA.method(); interfaceA.methodA(); //...隨便用... } private static void test(InterfaceA interfaceA){ //如果我知道InterfaceA的實現類同時也implements了InterfaceB // 那么我就可以把它當做InterfaceB的實現類來使用 InterfaceB interfaceB = (InterfaceB) interfaceA; interfaceB.method(); interfaceB.methodB(); }}

以上這篇java根據不同的參數調用不同的實現類操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 美女黄视频在线观看 | 国产91亚洲精品 | 男人的天堂高清在线观看 | 国产成a人亚洲精v品久久网 | 美女视频很黄很a免费国产 美女视频黄.免费网址 | 中文字幕精品一区二区精品 | 老司机免费福利午夜入口ae58 | 一个人看的www日本高清视频 | 在线欧美一级毛片免费观看 | 国产美女精品视频免费观看 | 99ri在线精品视频在线播放 | 国产一区二区在线观看视频 | 免费人成黄页网站在线观看国产 | 国产精品久久自在自线观看 | 欧美人禽杂交狂配毛片 | 全部在线美女网站免费观看 | 日韩欧美精品在线观看 | 亚洲精品日本高清中文字幕 | 免费日本在线视频 | 久久国产精品二区99 | 免费在线一区二区三区 | 手机看片神马午夜 | 国产精品视频一区二区三区 | 日韩欧美一区二区三区不卡视频 | 国产亚洲三级 | 欧美一线高本道高清在线 | 欧美日韩人成在线观看 | 中国美女牲交一级毛片 | 亚洲天堂视频一区 | 久久久久久久久久久久福利 | 我不卡午夜| 免费看 s色| 欧美激情国内自拍偷 | 久久综合中文字幕一区二区 | 免费a级片网站 | 久草免费在线视频观看 | 成人午夜在线播放 | 欧美成在人线a免费 | 女人张开腿让男人桶个爽 | 男女扒开双腿猛进入爽爽视频 | 日本成本人视频 |