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

歡迎訪問 生活随笔!

生活随笔

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

java

java8返回单个号码_如何在单个API中支持Java 6、8、9

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

java8返回單個號碼

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

創(chuàng)建結(jié)果流

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()); }

異步調(diào)用語句(jOOQ 3.8+)

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

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

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

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

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中已經(jīng)可用,但是我們沒有Java 7版本)。

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

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

這種方法的優(yōu)點

與其他方法相比,此方法有幾個優(yōu)點:

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

缺點是:

  • 提交到存儲庫會比較慢,因為我們有幾個存儲庫。
  • 發(fā)布版本需要更長的時間,因為需要構(gòu)建不同的版本并多次測試集成
  • 有時,我們只是忘了添加一個標記,而當Java-6每晚構(gòu)建崩潰時,我們不得不重新構(gòu)建
  • 我們?nèi)匀徊荒茉贘ava 6版本(大多數(shù)代碼)中包含的普通代碼中使用lambda表達式。

我們認為,優(yōu)勢明顯勝過。 只要我們的客戶能夠,并且只要那些受困于舊版本的客戶仍然能夠升級到最新的jOOQ版本,就可以實現(xiàn)一流的Java功能就可以了。

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

你呢?

您如何實現(xiàn)跨JDK版本的兼容性?

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

java8返回單個號碼

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。