日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

如何在单个API中支持Java 6、8、9

發布時間:2023/12/3 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在单个API中支持Java 6、8、9 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

借助jOOQ 3.7,我們終于添加了對Java 8功能的正式支持。 這為許多不錯的改進打開了大門,例如:

創建結果流

try (Stream<Record2<String, String>> stream =DSL.using(configuration).select(FIRST_NAME, LAST_NAME).from(PERSON).stream()) {List<String> people =stream.map(p -> p.value1() + " " + p.value2()).collect(Collectors.toList()); }

異步調用語句(jOOQ 3.8+)

CompletionStage<Record> result = DSL.using(configuration).select(...).from(COMPLEX_TABLE).fetchAsync();result.thenComposing(r -> ...);

但是顯然,我們不想讓那些因使用較舊的應用程序服務器而受Java 6困擾的付費客戶感到失望。

如何在單個API中支持多個Java版本

這就是為什么我們繼續為商業客戶發布Java 6版本的jOOQ 。 我們是怎么做的? 非常簡單地。 我們的商業代碼庫(這是我們的主要代碼庫)包含大量的“標志”,如以下示例所示:

public interface Query extends QueryPart, Attachable /* [java-8] */, AutoCloseable /* [/java-8] */ {int execute() throws DataAccessException;/* [java-8] */CompletionStage<Integer> executeAsync();CompletionStage<Integer> executeAsync(Executor executor);/* [/java-8] */}

(當然, AutoCloseable在Java 7中已經可用,但是我們沒有Java 7版本)。

構建jOOQ時,在使用預處理器從源文件中剝離邏輯之后,我們對其進行了多次構建:

  • 商業Java 8版本是按原樣構建的
  • 通過剝離[java-8]和[/java-8]標記之間的所有代碼,構建第二個商業Java 6版本
  • 通過向商業版本添加一些代碼來構建商業免費試用版。
  • 通過剝離[pro]和[/pro]標記之間的所有代碼,構建了第三個開源版本

這種方法的優點

與其他方法相比,此方法有幾個優點:

  • 我們只有一個真理來源,即原始的商業源代碼。
  • 所有不同版本中的行號均相同
  • 這些API在一定程度上是兼容的
  • 通過類加載或反射不會涉及任何魔術

缺點是:

  • 提交到存儲庫要慢一些,因為我們有幾個存儲庫。
  • 發布版本需要更長的時間,因為需要構建不同的版本并多次測試集成
  • 有時,我們只是忘了添加一個標記,而當每晚Java-6構建崩潰時,我們不得不重新構建
  • 我們仍然無法在Java 6版本中包含的普通代碼中使用lambda表達式(大多數代碼)

我們認為,優勢明顯勝過。 只要我們的客戶能夠,并且只要那些仍舊使用舊版本的客戶仍然能夠升級到最新的jOOQ版本,就可以實現一流的Java功能就可以了。

我們期待在不影響現有用戶的情況下支持JDK 9功能,例如模塊化和新的Flow API 。

你呢?

您如何實現跨JDK版本的兼容性?

翻譯自: https://www.javacodegeeks.com/2016/03/support-java-6-8-9-single-api.html

總結

以上是生活随笔為你收集整理的如何在单个API中支持Java 6、8、9的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。