[發明專利]特化類的手動精煉有效
| 申請號: | 201580028725.4 | 申請日: | 2015-04-21 |
| 公開(公告)號: | CN106716349B | 公開(公告)日: | 2020-08-11 |
| 發明(設計)人: | B·戈茨;J·R·羅斯;A·R·布克利 | 申請(專利權)人: | 甲骨文國際公司 |
| 主分類號: | G06F8/20 | 分類號: | G06F8/20;G06F8/30;G06F8/41;G06F8/70;G06F8/71;G06F8/76;G06F9/445;G06F9/448;G06F9/455 |
| 代理公司: | 中國國際貿易促進委員會專利商標事務所 11038 | 代理人: | 張鑫 |
| 地址: | 美國加*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 特化 手動 精煉 | ||
雖然運行時特化器可能總是能夠生成泛型類的自動特化版本,但是在某些情況下,用戶對特化的控制的替代形式可以允許使用自動特化,同時還允許添加(或重寫)特定于特化的方法實現。一般地,當將泛型類特化時,泛型類的成員集合可能不變。換句話說,與泛型版本中相同的成員可以存在于自動特化的版本中。但是,特化類的手動精煉可以允許開發人員將特化類的一個或多個方法的特定(有可能更好)表示和/或實現手動特化。
技術領域
本發明一般而言涉及軟件開發并且更具體而言涉及在各種編程語言中任何一種語言當中的語言開發的各方面,作為一個例子,所述編程語言為諸如獨立于平臺的、面向對象的編程語言。
背景技術
在各種編程語言中,參數多態性(例如,泛型)可被認為是使語言更具表達性同時仍保持完全靜態類型安全性的方式。參數多態性可以允許以泛型方式編寫函數或數據類型,使得其可以以相同方式處理各種數據類型,而不管它們的類型不同。這樣的函數和數據類型可被稱為泛型函數和泛型數據類型。例如,泛型列表類可被寫為ListT,這意味著它可以是任何類型T的元素的列表,其中T與List分開指定。
當使用不提供可以是用于所有其它類型的超類型的單個類型的面向對象語言時,經常不能在不使用特定轉換操作的情況下在某些類型上進行泛化,其中所述特定轉換操作為諸如裝箱(例如,自動將基本類型(像int)的值轉換成對應包裝類(像Integer)的對象)。例如,傳統上JavaTM語言不允許對象和基本類型上的泛型。
參數多態性(泛型)還可以涉及代碼規模、生成成本和類型特殊性之間的權衡。例如,編程語言可以支持基本類型特化的泛型,但是可以靜態地生成特化類,從而潛在增加了代碼占用空間成本和編譯成本。另一種編程語言可以為程序使用的每個實例化生成模板的特化實例化,這可能導致大的靜態占用空間。還有第三種語言可以使用模板化的字節碼格式,僅執行對運行時的特化,這可能在使用泛型類文件之前需要附加的步驟,從而潛在地損害了運行時性能。
發明內容
雖然運行時特化器可能總是能夠生成泛型類的自動特化版本,但是在某些情況下,可以利用用戶對特化的控制的替代形式。例如,可以使用自動特化,同時還允許使用特定于特化的方法實現。一般地,當將泛型類特化時,泛型類的成員集合可能不變。換句話說,與泛型版本中相同的成員可以存在于自動特化的版本中。但是,特化類的手動精煉可以允許開發人員將特化類的一個或多個方法的特定(有可能更好)表示和/或實現手動特化。
特化類的手動精煉可以包括利用方法的不同版本來重寫方法的已有或自動特換版本。此外,手動精煉還可以包括在特化類中包括僅用于特定(而不是其他)類型參數化的另外的方法。因此,可以僅當對特定類型參數化特化對應的泛型類時,才在特化類中包括精煉方法。
例如,泛型類List可以對任何T是泛型的,并且List的自動特化版本可以包括泛型版本的所有字段和方法,但是如果Lsit對T=int被特化,則特定的一個類方法的新版本還可以被包括在特化類中。因此,根據一些實施例,如果Lsit對T=int被特化,則可以使用該方法的手動特化版本替代自動特化版本。
附圖說明
圖1是示出根據一個實施例的、實現特化類的依賴性驅動的共同特化的系統的部件的邏輯框圖。
圖2是示出根據一個實施例的依賴性驅動的共同特化的邏輯框圖。
圖3是示出如本文所述的用于依賴性驅動的共同特化的方法的一個實施例的流程圖。
圖4是示出根據一個實施例的、涉及依賴性鏈當中多個依賴性的依賴性驅動的共同特化的邏輯框圖。
圖5是示出根據一個示例實施例的、包括多個依賴性的依賴性驅動的共同特化的邏輯框圖。
圖6是示出根據一個實施例的泛型類的部分特化的邏輯框圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于甲骨文國際公司,未經甲骨文國際公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201580028725.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用于完成安全擦除操作的方法
- 下一篇:顯示網頁的方法和電子設備





