激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - java根據(jù)不同的參數(shù)調(diào)用不同的實現(xiàn)類操作

java根據(jù)不同的參數(shù)調(diào)用不同的實現(xiàn)類操作

2020-09-24 14:57jast_00 JAVA教程

這篇文章主要介紹了java根據(jù)不同的參數(shù)調(diào)用不同的實現(xiàn)類操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

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

java根據(jù)不同的參數(shù)調(diào)用不同的實現(xiàn)類操作

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

java根據(jù)不同的參數(shù)調(diào)用不同的實現(xiàn)類操作

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

java根據(jù)不同的參數(shù)調(diào)用不同的實現(xiàn)類操作

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

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

java根據(jù)不同的參數(shù)調(diào)用不同的實現(xiàn)類操作

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

java根據(jù)不同的參數(shù)調(diào)用不同的實現(xiàn)類操作

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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類實現(xiàn)了InterfaceA和InterfaceB兩個接口的方法,其中method是InterfaceA和InterfaceB共用的相同方法,那么Subject類中實現(xiàn)的該方法是屬于哪個接口的呢?

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class Main {
 
  public static void main(String[] args) {
    //我現(xiàn)在認為它是一個InterfaceA實現(xiàn)類, 就把它當做一個InterfaceA接口來使用
    InterfaceA interfaceA = new Subject();
    interfaceA.method();
    interfaceA.methodA();
 
    test(interfaceA);
 
    //我現(xiàn)在認為它是一個InterfaceB實現(xiàn)類, 就把它當做一個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的實現(xiàn)類同時也implements了InterfaceB
    // 那么我就可以把它當做InterfaceB的實現(xiàn)類來使用
    InterfaceB interfaceB = (InterfaceB) interfaceA;
    interfaceB.method();
    interfaceB.methodB();
  }
}

以上這篇java根據(jù)不同的參數(shù)調(diào)用不同的實現(xiàn)類操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/jast_00/article/details/53171884

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久逼网 | 性 毛片| 一起草av在线| 中文字幕激情 | 国产精品久久久久网站 | 性片免费看 | 天堂在线中文资源 | 99精品视频在线观看免费播放 | 国产精品视频在 | 精品一区二区免费 | 成人午夜精品久久久久久久蜜臀 | 亚洲第一色婷婷 | 欧美日韩电影在线 | 国产精品性夜天天视频 | 激情av在线 | 国产成人自拍视频在线观看 | 成年人在线视频 | 亚洲电影在线观看高清免费 | 国产免费一区二区三区最新不卡 | 91精品国产一区二区在线观看 | 欧美亚洲综合网 | 亚洲第一视频 | 国产99久久久久久免费看 | 91在线视频导航 | 国产一区二区三区网站 | 久久久久久久一区 | 国产激爽大片在线播放 | 精品国产91一区二区三区 | 一级电影免费在线观看 | a一级黄| 欧美成人理论片乱 | 久久久久久久一区 | 黄色大片网站在线观看 | 黄色网址在线免费 | 国产在线观看91一区二区三区 | 久久tv免费国产高清 | h视频在线免费观看 | 九九精品免费 | 久草在线小说 | 午色影院 | 欧美a级大胆视频 |