久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Java 9中新的貨幣API

瀏覽:42日期:2022-09-06 11:10:07

JSR 354定義了一套新的Java貨幣API,計劃會在Java 9中正式引入。本文中我們將來看一下它的參考實現:JavaMoney的當前進展。

正如我在之前那篇Java 8新的日期時間API一文中那樣,本文主要也是通過一些代碼來演示下新的API的用法 。

在開始之前,我想先用一段話來簡短地總結一下規范定義的這套新的API的用意何在:

對許多應用而言貨幣價值都是一個關鍵的特性,但JDK對此卻幾乎沒有任何支持。嚴格來講,現有的java.util.Currency類只是代表了當前ISO 4217貨幣的一個數據結構,但并沒有關聯的值或者自定義貨幣。JDK對貨幣的運算及轉換也沒有內建的支持,更別說有一個能夠代表貨幣值的標準類型了。

如果你用的是Maven的話,只需把下面的引用添加到工里面便能夠體驗下該參考實現的當前功能了:

<dependency> <groupId>org.javamoney</groupId> <artifactId>moneta</artifactId> <version>0.9</version></dependency>

規范中提到的類及接口都在javax.money.*包下面。

我們先從核心的兩個接口CurrencyUnit與MonetaryAmount開始講起。

CurrencyUnit及MonetaryAmount

CurrencyUnit代表的是貨幣。它有點類似于現在的java.util.Currency類,不同之處在于它支持自定義的實現。從規范的定義來看,java.util.Currency也是可以實現該接口的。CurrencyUnit的實例可以通過MonetaryCurrencies工廠來獲取:

// 根據貨幣代碼來獲取貨幣單位 CurrencyUnit euro = MonetaryCurrencies.getCurrency("EUR"); CurrencyUnit usDollar = MonetaryCurrencies.getCurrency("USD"); // 根據國家及地區來獲取貨幣單位 CurrencyUnit yen = MonetaryCurrencies.getCurrency(Locale.JAPAN); CurrencyUnit canadianDollar = MonetaryCurrencies.getCurrency(Locale.CANADA);

MontetaryAmount代表的是某種貨幣的具體金額。通常它都會與某個CurrencyUnit綁定。

MontetaryAmount和CurrencyUnit一樣,也是一個能支持多種實現的接口。

CurrencyUnit與MontetaryAmount的實現必須是不可變,線程安全且可比較的。

/ get MonetaryAmount from CurrencyUnitCurrencyUnit euro = MonetaryCurrencies.getCurrency("EUR");MonetaryAmount fiveEuro = Money.of(5, euro); // get MonetaryAmount from currency codeMonetaryAmount tenUsDollar = Money.of(10, "USD"); // FastMoney is an alternative MonetaryAmount factory that focuses on performanceMonetaryAmount sevenEuro = FastMoney.of(7, euro);

Money與FastMoney是JavaMoney庫中MonetaryAmount的兩種實現。Money是默認實現,它使用BigDecimal來存儲金額。FastMoney是可選的另一個實現,它用long類型來存儲金額。根據文檔來看,FastMoney上的操作要比Money的快10到15倍左右。然而,FastMoney的金額大小與精度都受限于long類型。

注意了,這里的Money和FastMoney都是具體的實現類(它們在org.javamoney.moneta.*包下面,而不是javax.money.*)。如果你不希望指定具體類型的話,可以通過MonetaryAmountFactory來生成一個MonetaryAmount的實例:

MonetaryAmount specAmount = MonetaryAmounts.getDefaultAmountFactory().setNumber(123.45) .setCurrency("USD") .create();

當且僅當實現類,貨幣單位,以及數值全部相等時才認為這兩個MontetaryAmount實例是相等的。

MonetaryAmount oneEuro = Money.of(1, MonetaryCurrencies.getCurrency("EUR"));boolean isEqual = oneEuro.equals(Money.of(1, "EUR")); // trueboolean isEqualFast = oneEuro.equals(FastMoney.of(1, "EUR")); // false

MonetaryAmount內包含豐富的方法,可以用來獲取具體的貨幣,金額,精度等等:

MonetaryAmount monetaryAmount = Money.of(123.45, euro);CurrencyUnit currency = monetaryAmount.getCurrency();NumberValue numberValue = monetaryAmount.getNumber(); int intValue = numberValue.intValue(); // 123double doubleValue = numberValue.doubleValue(); // 123.45long fractionDenominator = numberValue.getAmountFractionDenominator(); // 100long fractionNumerator = numberValue.getAmountFractionNumerator(); // 45int precision = numberValue.getPrecision(); // 5 // NumberValue extends java.lang.Number. // So we assign numberValue to a variable of type NumberNumber number = numberValue;

MonetaryAmount的使用

可以在MonetaryAmount上進行算術運算:

MonetaryAmount twelveEuro = fiveEuro.add(sevenEuro); // "EUR 12"MonetaryAmount twoEuro = sevenEuro.subtract(fiveEuro); // "EUR 2"MonetaryAmount sevenPointFiveEuro = fiveEuro.multiply(1.5); // "EUR 7.5" // MonetaryAmount can have a negative NumberValueMonetaryAmount minusTwoEuro = fiveEuro.subtract(sevenEuro); // "EUR -2" // some useful utility methodsboolean greaterThan = sevenEuro.isGreaterThan(fiveEuro); // trueboolean positive = sevenEuro.isPositive(); // trueboolean zero = sevenEuro.isZero(); // false // Note that MonetaryAmounts need to have the same CurrencyUnit to do mathematical operations// this fails with: javax.money.MonetaryException: Currency mismatch: EUR/USDfiveEuro.add(tenUsDollar);

舍入操作是金額換算里面非常重要的一部分。MonetaryAmount可以使用舍入操作符來進行四舍五入:

CurrencyUnit usd = MonetaryCurrencies.getCurrency("USD");MonetaryAmount dollars = Money.of(12.34567, usd);MonetaryOperator roundingOperator = MonetaryRoundings.getRounding(usd);MonetaryAmount roundedDollars = dollars.with(roundingOperator); // USD 12.35

這里12.3456美金就會按當前貨幣默認的舍入規則來進行換算。

在操作MonetaryAmount集合時,有許多實用的工具方法可以用來進行過濾,排序以及分組。這些方法還可以與Java 8的流API一起配套使用。

看一下下面這個集合:

List<MonetaryAmount> amounts = new ArrayList<>();amounts.add(Money.of(2, "EUR"));amounts.add(Money.of(42, "USD"));amounts.add(Money.of(7, "USD"));amounts.add(Money.of(13.37, "JPY"));amounts.add(Money.of(18, "USD"));

我們可以根據CurrencyUnit來進行金額過濾:

CurrencyUnit yen = MonetaryCurrencies.getCurrency("JPY");CurrencyUnit dollar = MonetaryCurrencies.getCurrency("USD");// 根據貨幣過濾,只返回美金// result is [USD 18, USD 7, USD 42]List<MonetaryAmount> onlyDollar = amounts.stream() .filter(MonetaryFunctions.isCurrency(dollar)) .collect(Collectors.toList()); // 根據貨幣過濾,只返回美金和日元// [USD 18, USD 7, JPY 13.37, USD 42]List<MonetaryAmount> onlyDollarAndYen = amounts.stream() .filter(MonetaryFunctions.isCurrency(dollar, yen)) .collect(Collectors.toList());

我們還可以過濾出大于或小于某個閾值的金額:

MonetaryAmount tenDollar = Money.of(10, dollar); // [USD 42, USD 18]List<MonetaryAmount> greaterThanTenDollar = amounts.stream() .filter(MonetaryFunctions.isCurrency(dollar)) .filter(MonetaryFunctions.isGreaterThan(tenDollar)) .collect(Collectors.toList());

排序也是類似的:

// Sorting dollar values by number value// [USD 7, USD 18, USD 42]List<MonetaryAmount> sortedByAmount = onlyDollar.stream() .sorted(MonetaryFunctions.sortNumber()) .collect(Collectors.toList()); // Sorting by CurrencyUnit// [EUR 2, JPY 13.37, USD 42, USD 7, USD 18]List<MonetaryAmount> sortedByCurrencyUnit = amounts.stream() .sorted(MonetaryFunctions.sortCurrencyUnit()) .collect(Collectors.toList());

還有分組操作:

// 按貨幣單位進行分組// {USD=[USD 42, USD 7, USD 18], EUR=[EUR 2], JPY=[JPY 13.37]}Map<CurrencyUnit, List<MonetaryAmount>> groupedByCurrency = amounts.stream() .collect(MonetaryFunctions.groupByCurrencyUnit()); // 分組并進行匯總Map<CurrencyUnit, MonetarySummaryStatistics> summary = amounts.stream() .collect(MonetaryFunctions.groupBySummarizingMonetary()).get(); // get summary for CurrencyUnit USDMonetarySummaryStatistics dollarSummary = summary.get(dollar);MonetaryAmount average = dollarSummary.getAverage(); // "USD 22.333333333333333333.."MonetaryAmount min = dollarSummary.getMin(); // "USD 7"MonetaryAmount max = dollarSummary.getMax(); // "USD 42"MonetaryAmount sum = dollarSummary.getSum(); // "USD 67"long count = dollarSummary.getCount(); // 3

MonetaryFunctions還提供了歸約函數,可以用來獲取最大值,最小值,以及求和:

List<MonetaryAmount> amounts = new ArrayList<>();amounts.add(Money.of(10, "EUR"));amounts.add(Money.of(7.5, "EUR"));amounts.add(Money.of(12, "EUR")); Optional<MonetaryAmount> max = amounts.stream().reduce(MonetaryFunctions.max()); // "EUR 7.5"Optional<MonetaryAmount> min = amounts.stream().reduce(MonetaryFunctions.min()); // "EUR 12"Optional<MonetaryAmount> sum = amounts.stream().reduce(MonetaryFunctions.sum()); //

自定義的MonetaryAmount操作

MonetaryAmount還提供了一個非常友好的擴展點叫作MonetaryOperator。MonetaryOperator是一個函數式接口,它接收一個MonetaryAmount入參并返回一個新的MonetaryAmount對象。

// A monetary operator that returns 10% of the input MonetaryAmount// Implemented using Java 8 LambdasMonetaryOperator tenPercentOperator = (MonetaryAmount amount) -> { BigDecimal baseAmount = amount.getNumber().numberValue(BigDecimal.class); BigDecimal tenPercent = baseAmount.multiply(new BigDecimal("0.1")); return Money.of(tenPercent, amount.getCurrency());}; MonetaryAmount dollars = Money.of(12.34567, "USD"); // apply tenPercentOperator to MonetaryAmountMonetaryAmount tenPercentDollars = dollars.with(tenPercentOperator); // USD 1.234567

標準的API特性都是通過MonetaryOperator的接口來實現的。比方說,前面看到的舍入操作就是以MonetaryOperator接口的形式來提供的。

匯率

貨幣兌換率可以通過ExchangeRateProvider來獲取。JavaMoney自帶了多個不同的ExchangeRateProvider的實現。其中最重要的兩個是ECBCurrentRateProvider與 IMFRateProvider。

ECBCurrentRateProvider查詢的是歐洲中央銀行(European Central Bank,ECB)的數據而IMFRateProvider查詢的是國際貨幣基金組織(International Monetary Fund,IMF)的匯率。

// get the default ExchangeRateProvider (CompoundRateProvider)ExchangeRateProvider exchangeRateProvider = MonetaryConversions.getExchangeRateProvider(); // get the names of the default provider chain// [IDENT, ECB, IMF, ECB-HIST]List<String> defaultProviderChain = MonetaryConversions.getDefaultProviderChain(); // get a specific ExchangeRateProvider (here ECB)ExchangeRateProvider ecbExchangeRateProvider = MonetaryConversions.getExchangeRateProvider("ECB");

如果沒有指定ExchangeRateProvider的話返回的就是CompoundRateProvider。CompoundRateProvider會將匯率轉換請求委派給一個ExchangeRateProvider鏈并將第一個返回準確結果的提供商的數據返回。

// get the exchange rate from euro to us dollarExchangeRate rate = exchangeRateProvider.getExchangeRate("EUR", "USD"); NumberValue factor = rate.getFactor(); // 1.2537 (at time writing)CurrencyUnit baseCurrency = rate.getBaseCurrency(); // EURCurrencyUnit targetCurrency = rate.getCurrency(); // USD

貨幣轉換

不同貨幣間的轉換可以通過ExchangeRateProvider返回的CurrencyConversions來完成。

// get the CurrencyConversion from the default provider chainCurrencyConversion dollarConversion = MonetaryConversions.getConversion("USD"); // get the CurrencyConversion from a specific providerCurrencyConversion ecbDollarConversion = ecbExchangeRateProvider.getCurrencyConversion("USD"); MonetaryAmount tenEuro = Money.of(10, "EUR"); // convert 10 euro to us dollar MonetaryAmount inDollar = tenEuro.with(dollarConversion); // "USD 12.537" (at the time writing)

請注意CurrencyConversion也實現了MonetaryOperator接口。正如其它操作一樣,它也能通過MonetaryAmount.with()方法來調用。

格式化及解析

MonetaryAmount可以通過MonetaryAmountFormat來與字符串進行解析/格式化。

// formatting by locale specific formatsMonetaryAmountFormat germanFormat = MonetaryFormats.getAmountFormat(Locale.GERMANY);MonetaryAmountFormat usFormat = MonetaryFormats.getAmountFormat(Locale.CANADA); MonetaryAmount amount = Money.of(12345.67, "USD"); String usFormatted = usFormat.format(amount); // "USD12,345.67"String germanFormatted = germanFormat.format(amount); // 12.345,67 USD // A MonetaryAmountFormat can also be used to parse MonetaryAmounts from stringsMonetaryAmount parsed = germanFormat.parse("12,4 USD");

可以通過AmountFormatQueryBuilder來生成自定義的格式。

// Creating a custom MonetaryAmountFormatMonetaryAmountFormat customFormat = MonetaryFormats.getAmountFormat( AmountFormatQueryBuilder.of(Locale.US).set(CurrencyStyle.NAME).set("pattern", "00,00,00,00.00 ¤").build()); // results in "00,01,23,45.67 US Dollar"String formatted = customFormat.format(amount);

注意,這里的¤符號在模式串中是作為貨幣的占位符。

總結

新的貨幣API這里已經介紹得差不多了。并且目前它的實現也已經相對穩定了(但還需要多補充些文檔)。期待能在Java 9中看到這套新的接口!

上述示例可在Github中下載到。

原文出處:Michael Scharhag

標簽: Java
相關文章:
主站蜘蛛池模板: 九色91在线 | 精品免费国产 | 精品成人在线视频 | 一区在线看 | 91久久国产综合久久 | 99久久婷婷国产综合精品 | 亚洲高清电影 | 亚洲性爰| 一区欧美| 欧美日韩精品一区二区在线播放 | 欧美日韩不卡在线 | 日本精品一区 | 91中文视频| 亚洲毛片在线观看 | 国产成人av一区二区三区 | 午夜精 | 夫妻午夜影院 | 日韩国伦理久久一区 | 中文字幕第33页 | 亚洲成人观看 | 国产精品乱码一区二区三区 | 中文字幕亚洲在线观看 | 欧美一区二区三区在线视频 | a一级免费视频 | 99久久久国产精品 | 久久综合亚洲 | 中文字幕精品一区二区三区精品 | 99精品欧美一区二区三区综合在线 | 一a毛片| 亚洲精品视频在线 | 成人av一区二区三区 | 亚洲一区中文字幕永久在线 | 国产成人在线网站 | 91性高湖久久久久久久久网站 | 久久窝| 亚洲一区 国产 | 欧美激情在线观看 | 91精品中文字幕一区二区三区 | 午夜影院免费观看 | 国产精品美女视频 | 中文字幕免费在线观看视频 | 91高清视频 | 欧美日一级片 | 免费成人小视频 | 午夜影院18 | 亚洲国产精品第一区二区 | 91国产精品 | 亚洲精品国产精品国自产 | 精品国产91久久久久久久 | 亚洲午夜精品a | 91亚洲国产成人久久精品网站 | 中文字幕一区二区在线观看 | 成人综合社区 | 国产精品视频一区二区三区不卡 | 国产福利视频在线观看 | 国产黄色免费视频 | 免费观看一级特黄欧美大片 | 亚洲福利| 欧美久久综合 | 免费看的av | 欧美福利视频 | 成人午夜激情 | 美女视频一区 | 国产一区www | 国产小视频网站 | 久久三区| 在线看一区二区 | 久久国语| 日韩高清不卡一区二区三区 | 国产日韩在线视频 | 国产激情精品一区二区三区 | 91国内外精品自在线播放 | 99精品国产高清一区二区麻豆 | 国产区视频在线观看 | 国产欧美日韩一区二区三区 | 国产精品视频久久久 | a国产在线观看 | 国产精品久久久久永久免费观看 | 国产一区在线观看视频 | www中文字幕| 欧美一区二区久久 | 亚洲国产精久久久久久久 | 视频一区二区三区在线播放 | 欧美精品在线观看免费 | 欧美一区二区三区xxxx监狱 | 日韩色视频| 国产三区在线观看视频 | 成人精品视频99在线观看免费 | 久久久久久亚洲精品视频 | 国产精品久久久久久久午夜片 | 日本精品一区 | 亚洲 欧美 精品 | 综合中文字幕 | 色网站在线观看 | 亚洲国产成人久久综合一区,久久久国产99 | 在线播放91 | 一区二区不卡视频在线观看 | 操操操av| 在线观看亚洲 | 日本黄色a级 | 国产999精品久久久久久麻豆 | 男人天堂视频在线观看 | 精品久久久久久 | 正在播放国产一区 | 天天干夜夜骑 | 免费一级毛片 | www午夜| 日本精品免费在线观看 | 羞羞视频网站 | 欧美黄色大片网站 | 999在线观看视频 | 一区二区在线视频 | 中文字幕日韩欧美 | 亚洲不卡高清视频 | 日韩在线视频精品 | 福利在线看 | 亚洲国产一区二区三区四区 | 色综合久久久 | 久久亚洲二区 | 欧美久久久久久久久久 | 国产成人一区二区三区 | 日本男人的天堂 | 91久久爽久久爽爽久久片 | 国产成人亚洲综合 | 色视频www在线播放国产人成 | 欧美男人天堂 | 亚洲精品日韩激情在线电影 | 一区二区三区四区在线视频 | 亚洲欧美激情在线 | 国产精品久久久99 | 成人欧美一区二区三区在线观看 | 天天射天天干 | 亚洲视频一| 中文字幕日韩在线 | 国产日产精品一区二区三区四区 | 日本黄网站在线观看 | 天堂网av2020 | 亚洲中出 | 电家庭影院午夜 | 国产精品久久久久久久久免费丝袜 | 欧美三级在线视频 | 久久生活片 | 日日操av | 亚洲精品一二区 | 国产一区久久精品 | 成人久久18免费观看 | 国产在线观看二区 | 日韩欧美一区二区三区免费观看 | 在线高清av | 性一级录像片片视频免费看 | 国产日韩精品在线 | 免费成人在线视频网站 | 91亚洲精品乱码久久久久久蜜桃 | 久久在线播放 | 国产精品国产精品国产专区不片 | 欧洲国产伦久久久久久久 | 在线免费色视频 | 精品网站www | 特黄视频| 在线观看中文 | 色婷婷亚洲| 天天综合网久久综合网 | 91视频入口 | 色噜噜狠狠狠综合曰曰曰88av | 一区免费视频 | 久久精品一级 | 在线成人www免费观看视频 | 欧美一区二区三区视频 | 黄色毛片观看 | 欧美激情精品久久久久久 | www久| 狠狠操天天干 | 久在线视频| 国产一区不卡视频 | 亚洲三区在线观看 | 欧美在线视频一区二区 | 99这里只有精品 | 欧美日韩三级在线 | 91人人看| 亚洲精品久久久 | 日本一区二区三区四区视频 | 在线精品一区二区 | 久久免费精品视频 | 久久男人天堂 | 久久中文视频 | 国产成人久久精品麻豆二区 | 日日夜夜免费精品视频 | 91在线视频一区 | 欧美性大战久久久久久久蜜臀 | 日韩电影一区二区三区 | 国产激情偷乱视频一区二区三区 | 日韩9999| 九九综合九九 | 亚洲精品在线观看免费 | 国产精品免费一区二区三区四区 | 午夜精品久久久久久久久 | 欧美在线观看禁18 | 国产精品激情在线观看 | 精品成人免费一区二区在线播放 | 蜜桃日韩 | 日韩精品在线免费 | 久久久久久成人 | 亚洲高清久久 | 久久精品色欧美aⅴ一区二区 | 一区二区三区观看视频 | 国产成人精品一区二区视频免费 | 色综合天天天天做夜夜夜夜做 | 一区二区三区在线播放视频 | 国产精品日韩在线观看 | 极品毛片 | 欧美二区三区 | a久久免费视频 | 国产一区二区自拍视频 | 高清在线一区二区 | 欧美激情在线播放 | 久色视频在线 | 在线观看你懂的网站 | 色综合天天天天做夜夜夜夜做 | 国产一级网站 | 欧美精品三区 | 中文字幕第90页 | 国产成人综合视频 | 久久国产一区二区 | 国产黄色在线观看 | 91精品国产自产精品男人的天堂 | 久久久久久久久久国产精品 | 一级全黄少妇性色生活片毛片 | 欧美午夜精品久久久 | 一区二区三区日韩在线 | 一区二区三区亚洲视频 | 国产一级片免费观看 | 91在线视频观看 | 男女羞羞羞视频午夜视频 | 一区二区国产精品 | 久久亚洲免费 | 羞羞视频在线网站观看 | 一区二区三区在线免费观看 | 精品一区二区久久久久久久网站 | 亚洲精品一区二区网址 | 中文字幕综合 | 日韩一级| 亚洲首页| 日本a v在线播放 | 精品国产高清一区二区三区 | 91精品一二区 | 精品国产青草久久久久福利 | 人人玩人人添人人澡97 | 国产精品国色综合久久 | 亚洲欧美精品久久 | 欧美天天 | va在线观看 | 国产午夜精品久久久 | 日本黄a三级三级三级 | 成人小视频在线观看 | 国产精品久久久久久久久久三级 | 蜜桃视频在线观看www社区 | 亚洲精品一区二区三区中文字幕 | 羞羞视频免费观看网站 | 毛片免费观看 | 99riav国产一区二区三区 | 成人网av| 亚洲国产精品成人综合色在线婷婷 | 精品无码久久久久久国产 | 国产精品视频一区二区三区 | jizz欧美大片 | 久久精品一区二区三区四区毛片 | 亚州中文字幕 | 久久久在线 | 国产视频91在线 | 久久国产视频精品 | 免费观看www免费观看 | 操久久 | a免费观看 | 黄色一级片视频播放 | 无码日韩精品一区二区免费 | 亚洲一区在线观看视频 | 天天操天天舔天天爽 | 精品视频久久 | 国产高清在线看 | www.亚洲 | 99久久久精品 | av综合在线观看 | 君岛美绪一区二区三区 | 日韩视频在线观看视频 | 蜜桃视频在线观看www社区 | 美女中文字幕视频 | 亚洲精品久久久久久久久久久 | 中文一二区 | 国产午夜精品一区二区三区嫩草 | 国产三级久久久久 | 久热热热 | 99精品国产高清一区二区麻豆 | 神马久久久久久久 | 91干在线观看| 日日做 | 国产成人精品免高潮在线观看 | 日韩不卡av | 国产黄色在线免费看 | 久久精品综合 | 一区二区在线播放视频 | 亚洲免费色 | 福利视频网 | 成人免费视频网 | 狠狠草视频| 99久久国产| 午夜精品久久 | 一区二区中文字幕 | 国产精品视频99 | 欧美日韩中文字幕 | 搜索黄色毛片 | 日韩av入口 | 国产福利在线播放 | 久久99国产精品久久99大师 | 91观看| 在线99| 免费的污网站 | 亚洲精品一区二区三区99 | 伊人久久视频 | 国产精品久久久久久婷婷天堂 | 亚洲精久久 | 精品无人乱码一区二区三区 | 亚洲中国字幕 | 91.com在线观看 | 国产成人在线播放 | 国产精品99久久久久久久vr | 99久久精品免费看国产一区二区三区 | 久久精品亚洲 | 欧美理论视频 | 亚洲中国字幕 | 激情五月综合 | 国产91成人video| 91精彩视频在线观看 | 麻豆一区| 国产精品视频免费 | 欧美精品福利 | 国产婷婷 | 欧美日韩三级 | 亚洲三级网站 | 亚洲一区二区中文字幕在线观看 | 国产欧美精品在线 | 国产成人在线一区二区 | 欧美一级在线观看 | 中文日韩在线 | 国产综合视频 | 精品乱子伦一区二区三区 | 久久99精品久久久久国产越南 | 久久99久久久久久 | 狠狠操综合网 | 免费一级在线观看 | 欧美精品一区自拍a毛片在线视频 | 国产成人精品高清久久 | 日韩一区二区在线电影 | 91精品久久久久久久久久 | 一区二区三区在线播放 | 欧美日韩成人在线播放 | 午夜无码国产理论在线 | av高清在线看 | 亚洲欧美综合精品久久成人 | 亚洲精品一区二区三区在线 | 一区二区视频在线观看 | 国产精品一区二区av | 国产中文字幕一区二区三区 | av免费网站 | 国产日韩欧美 | 久久av网 | 国产精品久久久久久久一区探花 | 天天躁日日躁狠狠躁av麻豆 | 爱干视频 | 免费一区二区三区 | 国产一区二区综合 | 激情久久av一区av二区av三区 | 精品三级三级三级三级三级 | 91色视频在线观看 | 91九色在线| 日本久久精品视频 | 国产一区二区视频在线 | 亚洲综合大片69999 | 成人免费视频网站在线观看 | 国产黄色av | 国产大片黄色 | 天天澡天天狠天天天做 | 欧美精品一区二区三区四区在线 | 久久国产经典视频 | 久久精品一区视频 | 欧美日韩综合精品 | 色呦呦日韩 | 激情网站免费 | 欧美精品成人一区二区在线 | 成人一级视频 | 欧美一区二区三区精品 | 久久国产一区二区三区 | 亚洲一区播放 | 亚洲精品午夜aaa久久久 | 天天干天天操天天干 | 欧洲精品在线观看 | 国产美女视频一区 | 中文无码久久精品 | 国产精品99久久免费观看 | 日本免费在线 | 日韩高清在线一区 | 午夜在线视频免费观看 | 日韩成人高清视频 | 欧美黄色网| 国产精品综合 | 日本在线免费电影 | 国内精品一区二区 | 色综久久 | 亚洲a视频 | 久久国产精品视频 | 久综合网 | 国产天天操 | 中国黄色毛片 大片 | 国产日韩成人 | 精品少妇一区二区三区日产乱码 | 久久成人一区 | 欧美激情精品久久久久久 | 国产欧美日本 | 亚洲欧美一级 | 国产精品久久久久久久久 | 欧美一级片毛片免费观看视频 | 中文字幕久久精品 | 亚洲精品乱码久久久久久蜜桃不爽 | 亚洲三区在线观看 | 九一精品国产 | 国产精品视频一区二区三区, | 亚洲视频免费观看 | 天天操夜夜操免费视频 | 国产激情在线看 | 国产精品久久久久久久久 | 亚洲欧洲一区二区三区 | 国产精品高潮呻吟av久久4虎 | 黄色小视频免费观看 | www久久久| 日本一区二区三区视频免费看 | 在线观看国产高清视频 | 日韩精品一区二区三区四区视频 | 亚洲日本中文 | 欧美日韩亚洲另类 | 日本久久网 | 青娱乐网 | 久久在线视频 | 国产成人免费视频网站视频社区 | 国产成人精品一区 | 国产精品入口久久 | 精品欧美乱码久久久久久1区2区 | av免费网站在线观看 | 91精品国产高清一区二区三区 | 国内精品视频一区二区三区 | 亚洲视频免费在线观看 | 欧美日韩精品一区二区三区四区 | 成人av播放 | 成人精品视频在线观看 | 久久中文网 | 深夜av在线 | 超碰九七在线 | 人人鲁人人莫一区二区三区 | 中文字幕在线免费看 | 国产中文视频 | 国产一区不卡 | 久久女同互慰一区二区三区 | 亚洲第一成年免费网站 | 久久激情网 | 黄色精品视频 | 日韩在线视频免费看 | 国产欧美久久一区二区三区 | 国产区视频在线观看 | 国产成人精品免费视频大全最热 | 国产在线拍揄自揄拍视频 | 亚洲精品一区在线观看 | 久久se精品一区精品二区 | 国产一区二区视频在线观看 | 一级毛片久久久 | 亚洲欧美日韩精品 | 狠狠综合久久av一区二区老牛 | 日韩高清中文字幕 | 日韩午夜电影 | 亚洲欧美另类久久久精品2019 | av日韩一区 | 亚洲三级视频 | 国产精品免费一区二区三区四区 | 欧美色欧美亚洲另类七区 | 99爱免费观看国语 | 欧美一区2区三区4区公司二百 | 日干夜干天天干 | 亚州中文 | a级性生活片 | 天天干狠狠干 | 国产成人精品在线 | 日产久久 | 精品久久久久久久久久久久 | 99精品一区二区 | 国产日产精品一区二区三区四区 | 99国产视频 | 一区二区三区国产好的精 | 国产一区二区精品 | a成人在线 | 99国产精品99久久久久久 | 亚洲精品一区二三区不卡 | 欧美精品色网 | 久久久免费 | 伊人网在线观看 | 成年人免费看片 | 精品国产91乱码一区二区三区 | 羞羞视频在线观看入口 | 午夜精品久久久久久久星辰影院 | 日日干日日爽 | 日韩在线不卡视频 | 午夜影院在线免费观看 | 爱干在线| 国产高清精品一区二区三区 | 国产99热| 亚洲中字幕女 | 26uuu成人免费毛片 | 日韩无在线 | 日韩99| 欧美精品一区二区三区在线四季 | 欧美日韩国产一区二区三区 | 国产高清在线a视频大全 | 精品人成 | 超碰在线播 | 久久久久久成人 | 国产99精品 | 欧美日韩国产高清视频 | 亚洲国产成人精品女人久久久 | 在线看国产 | 精品国产一区二区三区久久久蜜臀 | 国产精品成人在线观看 | 一区二区三区四区在线 | a免费在线| 一级毛片免费看 | 成人在线观看免费视频 | 久久久久91 | av不卡电影在线观看 | 久久久久久91 | 国产乱码精品1区2区3区 | 国产在线视频网 | 天天天操 | 在线视频 亚洲 | 亚洲免费视频观看 | 国产精品欧美一区二区三区 | 九九视频这里只有精品 | 天天摸夜夜操 | 久久久久久综合 | 精品视频在线视频 | 亚洲精品乱码久久久久久花季 | 精品视频在线观看一区二区三区 | 亚洲电影在线观看 | 999精品视频 | 亚洲精品美女久久 | 日韩免费 | 亚洲福利片| 国产一区二区三区在线免费观看 | 亚洲日本欧美日韩高观看 | 色毛片 | 久久久精品视频免费观看 | h亚洲视频| 美女国产精品 | 一区二区三区 在线 | 欧美精品免费在线观看 | 日韩精品视频网 | 亚洲成人久久久 | 青青久久| 国产精品国产三级国产aⅴ 羞羞的视频在线 | 漂亮少妇videoshd忠贞 | 日韩久久久久久久久久久 | 国产伦精品一区二区三区四区视频 | 三级国产网站 | 91久久综合亚洲鲁鲁五月天 | 国产欧美一区二区精品婷 | 亚洲一区视频 | 国产在线一区二区三区 | 日韩综合| 在线播放高清视频www | 久久视频一区 | 国产人成免费视频 | av在线官网| 美女黄网站视频免费 | 亚洲天堂一区 | 亚洲国产免费 | 国产成人精品一区二区三区四区 | 久久手机免费视频 | 亚洲欧美一区二区三区视频 | 中文字幕精品三区 | 欧美精品久久久 | 国产精品一区二 | 亚洲精品乱码久久久久久蜜桃图片 | 成人不卡在线观看 | 99爱视频 | a毛片国产 | 久久久久久亚洲精品 | 国产在线视频a | 中文字幕一二区 | 伊人网站 | 视频福利一区 | 蜜桃视频成人m3u8 | 中文字幕成人 | 日韩理论在线 | 欧美v片 | 天天成人综合网 | 免费的一级黄色片 | 久久久97 | 欧美精品一区二区蜜臀亚洲 | 日韩中文字幕免费在线播放 | 久久99一区 | 国产综合亚洲精品一区二 | 在线观看国产日韩欧美 | 99国产精品久久久久久久 | 欧美日韩激情在线一区二区三区 | 久久99这里只有精品 | 久久综合社区 | 九九porny88av | 欧美一区二区免费 | 久久精品这里有 | 色999精品| 不卡一区 |