System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,尤其涉及一種類實例構建方法、裝置、設備、存儲介質和程序產品。
技術介紹
1、對于自定義類,通常會通過構建一個模擬的元類系統的方式來存放所有的成員信息,并在動態化時將所有的類轉化成元類對象,父類作為成員變量會填充到子類中,當執行類的方法時,通過類名+方法名尋找對應的成員執行返回結果。此外還可以通過混入的方式將系統類的相關成員注入到派生類類型。
2、然而,通過上述方式為元類實例進行擴展雖然可以保持系統類的特性,但當子類需要繼承一個新的系統類時,元類就需要再多混入一個類,這使得代碼應用不夠靈活。
技術實現思路
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、在其中一個實施例中,所述根據所述檢索指令攜帶的成員標簽,從所述元類實例及所述元類實例對應的動態化類實例中匹配到對應的目標動態化類成員信息,包括:
42、將所述成員標簽依次與所述元類實例的成員信息、所述元類實例對應的各所述動態化類實例的動態化類成員信息進行比對,直到匹配到對應的目標動態化類成員信息。
43、在其中一個實施例中,所述動態化類成員信息包含動態化類接口父類信息、動態化類混入父類信息、動態化類繼承父類信息、以及中間類接口父類信息、中間類混入父類信息、中間類繼承父類信息預先設置有優先權順序;
44、所述將所述成員標簽依次與所述元類實例的成員信息、所述元類實例對應的各所述動態化類實例的動態化類成員信息進行比對,直到匹配到對應的目標動態化類成員信息,包括:本文檔來自技高網...
【技術保護點】
1.一種類實例構建方法,其特征在于,包括:
2.根據如權利要求1所述的方法,其特征在于,所述從預先設置的至少一個元類中,匹配到所述目標描述信息對應的目標類之前,包括:
3.根據如權利要求2所述的方法,其特征在于,所述元類實例的數據結構包括成員信息;
4.根據如權利要求3所述的方法,其特征在于,所述方法還包括:
5.根據如權利要求4所述的方法,其特征在于,所述元類實例的繼承關系包括接口父類信息、混入父類信息和繼承父類信息的至少一種;
6.根據如權利要求5所述的方法,其特征在于,所述基于所述動態化類成員信息和各所述動態化類成員信息對應的動態化類繼承關系,構建所述動態化類實例,包括:
7.根據如權利要求3所述的方法,其特征在于,所述動態化類實例包括中間類實例;
8.根據如權利要求7所述的方法,其特征在于,所述動態化類繼承關系包括所述中間類實例的中間類繼承關系;
9.根據如權利要求8所述的方法,其特征在于,所述基于所述動態化類成員信息和各所述動態化類成員信息對應的動態化類繼承關系,構建所述動態
10.根據如權利要求9所述的方法,其特征在于,所述方法還包括:
11.根據如權利要求10所述的方法,其特征在于,所述根據所述檢索指令攜帶的成員標簽,從所述元類實例及所述元類實例對應的動態化類實例中匹配到對應的目標成員信息,包括:
12.根據如權利要求11所述的方法,其特征在于,所述動態化類成員信息包含動態化類接口父類信息、動態化類混入父類信息、動態化類繼承父類信息、以及中間類接口父類信息、中間類混入父類信息、中間類繼承父類信息預先設置有優先權順序;
13.一種類實例構建裝置,其特征在于,包括:
14.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至12中任一項所述的類實例構建方法中的步驟。
15.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至12中任一項所述的類實例構建方法的步驟。
16.一種計算機程序產品,包括計算機程序,其特征在于,該計算機程序被處理器執行時實現權利要求1至12中任一項所述的類實例構建方法的步驟。
...【技術特征摘要】
1.一種類實例構建方法,其特征在于,包括:
2.根據如權利要求1所述的方法,其特征在于,所述從預先設置的至少一個元類中,匹配到所述目標描述信息對應的目標類之前,包括:
3.根據如權利要求2所述的方法,其特征在于,所述元類實例的數據結構包括成員信息;
4.根據如權利要求3所述的方法,其特征在于,所述方法還包括:
5.根據如權利要求4所述的方法,其特征在于,所述元類實例的繼承關系包括接口父類信息、混入父類信息和繼承父類信息的至少一種;
6.根據如權利要求5所述的方法,其特征在于,所述基于所述動態化類成員信息和各所述動態化類成員信息對應的動態化類繼承關系,構建所述動態化類實例,包括:
7.根據如權利要求3所述的方法,其特征在于,所述動態化類實例包括中間類實例;
8.根據如權利要求7所述的方法,其特征在于,所述動態化類繼承關系包括所述中間類實例的中間類繼承關系;
9.根據如權利要求8所述的方法,其特征在于,所述基于所述動態化類成員信息和各所述動態化類成員信息對應的動態化類繼承關系,構建所述動態化類實例,還包括:
1...
【專利技術屬性】
技術研發人員:鄭文添,楊宏斌,楊森,魏猛,王成燁,
申請(專利權)人:中國銀聯股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。