精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Groovy 語法 Promotion提升和Coercion強(qiáng)制轉(zhuǎn)換學(xué)習(xí)

開發(fā) 前端
本篇內(nèi)容為Groovy學(xué)習(xí)第32篇,學(xué)習(xí)Groovy語法中的提升與強(qiáng)制轉(zhuǎn)換相關(guān)知識(shí)點(diǎn)。(Promotion和coercion),學(xué)習(xí)在Groovy中的各種數(shù)據(jù)類型的各種強(qiáng)制轉(zhuǎn)換和類型變換。

1. 介紹

本篇內(nèi)容為Groovy學(xué)習(xí)第32篇,學(xué)習(xí)Groovy語法中的提升與強(qiáng)制轉(zhuǎn)換相關(guān)知識(shí)點(diǎn)。(Promotion和coercion)

學(xué)習(xí)在Groovy中的各種數(shù)據(jù)類型的各種強(qiáng)制轉(zhuǎn)換和類型變換。

如果不了解Groovy中的數(shù)據(jù)時(shí)如何進(jìn)行轉(zhuǎn)換的,那么可以學(xué)習(xí)一下本篇內(nèi)容,應(yīng)該能夠給你一些參考。

2. 提升和強(qiáng)制轉(zhuǎn)換

2.1 數(shù)值轉(zhuǎn)換

整數(shù)提升:數(shù)字提升的規(guī)則在數(shù)學(xué)運(yùn)算一節(jié)中有詳細(xì)說明。[4. Groovy語法-Number和Boolean數(shù)據(jù)類型學(xué)習(xí) (zinyan.com)](https://zinyan.com/?p=389#2.5-數(shù)學(xué)運(yùn)算)

主要就是下圖所示的,數(shù)值類型的轉(zhuǎn)換。


byte

char

short

int

long

BigInteger

float

double

BigDecimal

byte

int

int

int

int

long

BigInteger

double

double

BigDecimal

char


int

int

int

long

BigInteger

double

double

BigDecimal

short



int

int

long

BigInteger

double

double

BigDecimal

int




int

long

BigInteger

double

double

BigDecimal

long





long

BigInteger

double

double

BigDecimal

BigInteger






BigInteger

double

double

BigDecimal

float







double

double

double

double








double

double

BigDecimal









BigDecimal

不同數(shù)值之間的提升,是按照該表格的關(guān)系進(jìn)行的。

2.2 閉包c(diǎn)losure的類型轉(zhuǎn)換

在前面介紹閉包相關(guān)知識(shí)的時(shí)候,有介紹過閉包中的各種轉(zhuǎn)換,相關(guān)知識(shí)點(diǎn)可以通過:https://zinyan.com/?p=461,https://zinyan.com/?p=462,https://zinyan.com/?p=463了解。?

這里只是進(jìn)行簡單的復(fù)習(xí)和介紹。

2.2.1 SAM單例對(duì)象,進(jìn)行閉包轉(zhuǎn)換

SAM類型是定義單個(gè)抽象方法的類型。例如我們創(chuàng)建接口:它的入?yún)⑹莻€(gè)T泛型。

interface Predicate<T> {
boolean accept(T obj)
}

具有單個(gè)抽象方法的抽象類:

abstract class Zinyan {
abstract String getName()
void hello() {
println "Hello, $name"
}
}

可以使用as運(yùn)算符將任何閉包轉(zhuǎn)換為SAM類型:

Predicate filter = { it.contains 'G' } as Predicate
assert filter.accept('Groovy') == true

Greeter greeter = { 'Groovy' } as Greeter
greeter.hello() //輸出:Hello, Groovy

從Groovy 2.2.0 開始,as Type表達(dá)式是可選的。我們可以省略它,只需編寫:

Predicate filter = { it.contains 'G' }
assert filter.accept('Groovy') == true

Greeter greeter = { 'Groovy' }
greeter.hello() //輸出:Hello, Groovy

PS: 上面的  { it.contains 'G' }就是一個(gè)閉包對(duì)象哦

這意味著我們也可以使用方法指針,如下例所示:

boolean doFilter(String s) { s.contains('G') }

Predicate filter = this.&doFilter
assert filter.accept('Groovy') == true

Greeter greeter = GroovySystem.&getVersion
greeter.hello() //輸出:Hello, Groovy

2.2.2 調(diào)用接受帶有閉包的SAM類型的方法

關(guān)閉SAM類型強(qiáng)制的第二個(gè)也是可能更重要的用例是調(diào)用接受SAM類型的方法。設(shè)想以下方法:

public <T> List<T> filter(List<T> source, Predicate<T> predicate) {
source.findAll { predicate.accept(it) }
}

然后,可以使用閉包調(diào)用它,而無需創(chuàng)建接口的顯式實(shí)現(xiàn):

assert filter(['Java','Groovy'], { it.contains 'G'} as Predicate) == ['Groovy']

從Groovy 2.2.0開始,還可以省略顯式強(qiáng)制,并像使用閉包一樣調(diào)用該方法:

assert filter(['Java','Groovy']) { it.contains 'G'} == ['Groovy']

這樣做的優(yōu)點(diǎn)是允許我們?cè)诜椒ㄕ{(diào)用中使用閉包語法,也就是說,將閉包放在括號(hào)之外,從而提高了代碼的可讀性。

2.2.3 對(duì)任意類型的強(qiáng)制閉包

上面介紹了SAM單例對(duì)象的強(qiáng)制轉(zhuǎn)換,這里介紹其他的類型。

除了SAM類型之外,閉包還可以強(qiáng)制到任何類型,尤其是特定的接口。讓我們定義以下接口:

interface FooBar {
int foo()
void bar()
}

定義了一個(gè)接口對(duì)象,它有兩個(gè)方法分別是foo和bar。我們可以使用as關(guān)鍵字將閉包強(qiáng)制到接口中:

def impl = { println 'ok'; 123 } as FooBar

這將生成一個(gè)類,所有方法都使用閉包實(shí)現(xiàn):

assert impl.foo() == 123
impl.bar() //輸出: ok

但也可以強(qiáng)制對(duì)任何類進(jìn)行閉包。例如,我們可以用class替換我們定義的接口,而不改變assert斷言的結(jié)果:

class FooBar {
int foo() { 1 }
void bar() { println 'bar' }
}

def impl = { println 'ok'; 123 } as FooBar

assert impl.foo() == 123
impl.bar()

PS: 斷言結(jié)果不滿足是會(huì)出新錯(cuò)誤并停止程序繼續(xù)執(zhí)行的

2.3 Map強(qiáng)制轉(zhuǎn)換成類型

通常使用一個(gè)閉包來實(shí)現(xiàn)一個(gè)接口或一個(gè)具有多個(gè)方法的類是不可行的。作為替代方案,Groovy允許將Map?強(qiáng)制到接口或類中。在這種情況下,Map?的鍵被解釋為方法名,而值是方法實(shí)現(xiàn)。以下示例說明了將Map強(qiáng)制到迭代器中:

def map
map = [
i: 10,
hasNext: { map.i > 0 },
next: { map.i-- },
]
def iter = map as Iterator

當(dāng)然,這是一個(gè)相當(dāng)做作的例子,但說明了這個(gè)概念。我們只需要實(shí)現(xiàn)那些實(shí)際調(diào)用的方法,但如果調(diào)用的方法在映射中不存在,則會(huì)引發(fā)MissingMethodException或

UnsupportedOperationException,具體取決于傳遞給調(diào)用的參數(shù),如下例所示:

interface X {
void f()
void g(int n)
void h(String s, int n)
}

x = [ f: {println "f called"} ] as X
x.f() // 正常的方法調(diào)用
x.g() // MissingMethodException 異常觸發(fā)
x.g(5) // UnsupportedOperationException 異常觸發(fā)

異常的類型取決于調(diào)用本身:

MissingMethodException:如果調(diào)用的參數(shù)與接口/類中的參數(shù)不匹配,就會(huì)觸發(fā)該異常警告。

UnsupportedOperationException:如果調(diào)用的參數(shù)與接口/類的重載方法之一匹配,就會(huì)觸發(fā)該異常警告。

2.4 String強(qiáng)制轉(zhuǎn)換成enum

Groovy允許透明String?(或GString)強(qiáng)制枚舉值。假設(shè)定義了以下枚舉:

enum State {
up,
down
}

則可以將字符串分配給枚舉,而不必使用顯式作為強(qiáng)制:

State st = 'up'
assert st == State.up

也可以使用GString作為值:

def val = "up"
State st = "${val}"
assert st == State.up

但是,這會(huì)引發(fā)運(yùn)行時(shí)錯(cuò)誤(IllegalArgumentException):

State st = 'not an enum value'

注意,也可以在switch語句中使用隱式強(qiáng)制:

State switchState(State st) {
switch (st) {
case 'up':
return State.down // 顯式賦值
case 'down':
return 'up' // 返回類型的隱式強(qiáng)制
}
}

特別是,請(qǐng)查看case?如何使用字符串常量。但如果調(diào)用一個(gè)使用帶有String?參數(shù)的枚舉的方法,則仍必須使用as作為強(qiáng)制:

assert switchState('up' as State) == State.down
assert switchState(State.down) == State.up
2.5 自定義類型強(qiáng)制轉(zhuǎn)換

類可以通過實(shí)現(xiàn)asType?方法來定義自定義強(qiáng)制策略。自定義強(qiáng)制是使用as?運(yùn)算符調(diào)用的,并且從不隱式。例如,假設(shè)定義了兩個(gè)類,Polar和Cartesian,如以下示例所示:

class Polar {
double r
double phi
}
class Cartesian {
double x
double y
}

你想從極坐標(biāo)轉(zhuǎn)換成笛卡爾坐標(biāo)。一種方法是在Polar類中定義asType方法:

def asType(Class target) {
if (Cartesian==target) {
return new Cartesian(x: r*cos(phi), y: r*sin(phi))
}
}

這允許使用as強(qiáng)制運(yùn)算符:

def sigma = 1E-16
def polar = new Polar(r:1.0,phi:PI/2)
def cartesian = polar as Cartesian
assert abs(cartesian.x-sigma) < sigma

把所有這些放在一起,Polar類看起來像這樣:

class Polar {
double r
double phi
def asType(Class target) {
if (Cartesian==target) {
return new Cartesian(x: r*cos(phi), y: r*sin(phi))
}
}
}

但也可以在Polar類之外定義asType,如果想為“封閉”類或不擁有源代碼的類定義自定義強(qiáng)制策略,例如使用元類:

Polar.metaClass.asType = { Class target ->
if (Cartesian==target) {
return new Cartesian(x: r*cos(phi), y: r*sin(phi))
}
}

PS: 自定義類型轉(zhuǎn)換主要的就是關(guān)鍵方法asType了。實(shí)現(xiàn)asType方法,然后自己就可以定義各種類型的轉(zhuǎn)換了。

2.6 類文本vs變量和as運(yùn)算符

只有對(duì)類有靜態(tài)引用時(shí),才能使用as關(guān)鍵字,如以下代碼所示:

interface Greeter {
void greet()
}
def greeter = { println 'Hello, Groovy!' } as Greeter // Greeter is known statically
greeter.greet()

但是,如果通過反射獲得類,例如通過調(diào)用class.forName,該怎么辦?

Class clazz = Class.forName('Greeter')

嘗試使用as關(guān)鍵字對(duì)類的引用將失敗:

greeter = { println 'Hello, Groovy!' } as clazz
// throws:
// unable to resolve class clazz
// @ line 9, column 40.
// greeter = { println 'Hello, Groovy!' } as clazz

會(huì)出現(xiàn)異常錯(cuò)誤,因?yàn)閍s?關(guān)鍵字只對(duì)類文本有效。我們需要調(diào)用asType方法:

greeter = { println 'Hello, Groovy!' }.asType(clazz)
greeter.greet()

3. 小結(jié)

到這里,Groovy中有關(guān)于強(qiáng)制轉(zhuǎn)換和類型提升的相關(guān)知識(shí)就分享完畢了。以上內(nèi)容可以通過Groovy官網(wǎng)文檔:

[Groovy Language Documentation (groovy-lang.org)](http://docs.groovy-lang.org/docs/groovy-4.0.6/html/documentation/#_promotion_and_coercion)深入學(xué)習(xí)。

責(zé)任編輯:武曉燕 來源: zinyan
相關(guān)推薦

2009-09-04 10:49:19

C#隱式轉(zhuǎn)換

2022-12-28 08:03:02

Groovy語法GPath

2017-03-24 14:22:25

軟件開發(fā)互聯(lián)網(wǎng)計(jì)算機(jī)

2023-01-17 14:01:19

JavaScript類型轉(zhuǎn)換字符串

2015-07-13 11:36:26

JavaavaScriptGroovy

2011-06-17 16:42:23

C#

2023-01-04 08:39:34

2018-05-25 09:50:30

Java數(shù)據(jù)類型類型轉(zhuǎn)換

2023-01-02 23:58:03

2022-12-26 08:36:53

Groovy語法控制結(jié)構(gòu)

2012-02-16 11:38:23

ibmdw

2010-09-08 13:14:03

CSS濾鏡

2011-07-14 10:58:26

JavaScript強(qiáng)制類型轉(zhuǎn)換函數(shù)

2011-07-14 10:39:08

強(qiáng)制類型轉(zhuǎn)換函數(shù)C++

2021-04-13 08:42:29

C語言數(shù)據(jù)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換

2009-09-04 09:00:29

Java基礎(chǔ)語法

2009-08-18 15:00:00

C#強(qiáng)制轉(zhuǎn)換

2013-04-17 10:20:27

GroovyClassLoader

2010-05-28 19:39:28

MySQL 編碼轉(zhuǎn)換

2010-10-25 17:17:50

Oracle日期轉(zhuǎn)換函
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

午夜精品影院| 国产精品**亚洲精品| 久久综合网色—综合色88| 日本精品久久久久久久| 亚洲精品视频久久久| 巨大黑人极品videos精品| 一区二区三区免费看视频| 中文字幕亚洲专区| 中文字幕一二三区| 亚洲wwww| 亚洲妇女屁股眼交7| 日韩av大全| av资源免费观看| 色婷婷热久久| 国产视频精品久久久| 图片区乱熟图片区亚洲| 欧美艳星kaydenkross| 亚洲激情图片一区| 亚洲精品白虎| 凸凹人妻人人澡人人添| 蜜臀91精品一区二区三区| 性色av香蕉一区二区| 很污很黄的网站| 亚洲精华一区二区三区| 欧美成人a∨高清免费观看| av免费网站观看| 第一福利在线视频| 亚洲欧美一区二区三区国产精品| 欧美美乳视频网站在线观看| 亚洲国产欧美另类| 亚洲网站啪啪| 日韩在线观看免费av| 国产嫩草在线观看| cao在线视频| 一区二区欧美国产| 宅男一区二区三区| 99久久久国产精品无码免费| 欧美福利一区| 深夜福利一区二区| 国产特级黄色录像| 欧美激情15p| 精品成人在线观看| 少妇愉情理伦片bd| av中文字幕在线观看第一页| 亚洲激情欧美激情| 亚洲欧美一二三| 老司机av在线免费看| 国产一区在线精品| 国产欧美一区二区三区在线| 亚洲精品国产精品国自产网站按摩| 日韩欧美字幕| 亚洲欧洲一区二区三区久久| 91av在线免费| 神马久久av| 精品无人国产偷自产在线| 免费不卡的av| 黄色美女久久久| 亚洲国产精品电影| 欧美熟妇精品黑人巨大一二三区| 精品资源在线| 亚洲精品综合久久中文字幕| aa片在线观看视频在线播放| 一区二区三区四区在线看| 精品偷拍各种wc美女嘘嘘| 免费无码一区二区三区| 欧美亚洲色图校园春色| 亚洲精品影视在线观看| 国产精品免费无码| 欧美电影免费观看高清| 亚洲国产成人一区| 亚洲色图14p| 亚洲人挤奶视频| 亚洲一级黄色片| 亚洲色图日韩精品| 亚洲国产一成人久久精品| 欧美精品亚州精品| 日本中文字幕免费观看| 久久午夜影视| 国产日产亚洲精品| 成人免费一级视频| 久久精品一区四区| 一区二区三区四区免费视频| 亚洲综合图区| 国产日韩在线不卡| 亚洲欧洲三级| 丝袜美腿av在线| 婷婷国产v国产偷v亚洲高清| 国产精品亚洲天堂| 伊人在我在线看导航| 精品福利在线观看| 天堂一区在线观看| 国产精品一线| 最新国产精品亚洲| 黄网站免费在线| 久久久国产精品| 久久久久久com| www.欧美色| 国产老肥熟一区二区三区| 狠狠色狠狠色综合人人| 婷婷在线视频观看| 精品电影在线观看| 亚洲小视频网站| 99久久人爽人人添人人澡| 亚洲欧洲高清在线| 加勒比av在线播放| 日本视频免费一区| 国产成人亚洲欧美| 五月婷婷在线观看| 欧美午夜女人视频在线| 九九热视频免费| 久久不见久久见中文字幕免费| 久久亚洲国产成人| 神马久久久久久久| 成人午夜精品一区二区三区| 中文字幕制服丝袜在线| 伊人久久综合一区二区| 精品乱码亚洲一区二区不卡| 日韩一级片在线免费观看| 一区二区久久| 波多野结衣一区二区三区在线观看| 毛片免费在线| 精品久久久久久久大神国产| 手机在线观看日韩av| 日韩精品欧美| 国产精国产精品| 中文字幕自拍偷拍| 92国产精品观看| 久久综合久久久久| 精品视频一区二区三区| 综合欧美国产视频二区| 波多野结衣不卡| 91视视频在线观看入口直接观看www| 亚洲天堂av免费在线观看| 99久久久国产精品免费调教网站 | 日本一区二区免费在线观看视频| www.av蜜桃| 99久久免费精品国产72精品九九 | sm久久捆绑调教精品一区| 欧美一区二区播放| 亚洲国产欧美日韩在线| 日韩精品欧美激情一区二区| 国产精品福利在线| 久久99久久| 色噜噜狠狠成人中文综合| 欧美xxxx×黑人性爽| 欧美三级网页| 国产高清在线一区| 狂野欧美激情性xxxx欧美| 精品久久久久香蕉网| 久久免费播放视频| 不卡一区中文字幕| 久色视频在线播放| 国产精品麻豆成人av电影艾秋| 日韩黄在线观看| 欧美一区二区三区四| 久久久综合精品| 国产精品wwwww| 成人影视亚洲图片在线| 国产欧美 在线欧美| 在线免费观看黄色av| 亚洲一区二区三区影院| 国产无套精品一区二区三区| 欧美特黄一区| 久久久久资源| 蜜桃视频成人m3u8| 久久人体大胆视频| 超碰在线观看99| 午夜电影网亚洲视频| 国产精品无码网站| 日本中文字幕一区二区有限公司| 无码免费一区二区三区免费播放 | 伊人久久婷婷色综合98网| 综合久久av| 欧美激情伊人电影| 欧美日韩国产综合视频| 欧美日韩午夜精品| 久久久精品一区二区涩爱| 91亚洲国产成人精品一区二三| 啊啊啊一区二区| 亚洲不卡在线| 91黄色8090| 亚洲国产精品成人久久蜜臀| 亚洲一级在线观看| 日韩av在线看免费观看| 韩国一区二区视频| 福利微拍一区二区| 国产精品日韩欧美一区二区| 日韩电影免费看| 色偷偷av一区二区三区乱| 亚洲欧美另类综合| 在线区一区二视频| 欧美日韩国产精品综合| 久久久天堂av| 手机av在线网站| 久久视频一区| 成人在线视频一区二区三区| 国产精品中文字幕亚洲欧美| 91精品天堂| 日韩精品免费观看视频| 久久久久国产精品免费| av男人的天堂在线| 亚洲精品久久视频| av中文字幕免费在线观看| 欧美日韩中文字幕日韩欧美| 99视频只有精品| 国产色一区二区| 少妇精品无码一区二区三区| 久久99精品久久只有精品| 久久久久久九九九九| 日本亚洲欧洲无免费码在线| 136fldh精品导航福利| 大片免费在线看视频| 亚洲日本欧美日韩高观看| 亚洲第一页综合| 欧美裸体bbwbbwbbw| 国产尤物在线视频| 亚洲一区二区三区爽爽爽爽爽| 人人妻人人澡人人爽| 91在线精品一区二区三区| 最新日本中文字幕| 国精产品一区一区三区mba桃花 | 日韩欧美成人一区二区三区| 亚洲精品国产a久久久久久| 在线观看日本黄色| 国产欧美日韩不卡| 一本色道久久综合亚洲精品图片| 粉嫩一区二区三区在线看| 免费看毛片的网址| 亚洲精品二区三区| 在线观看成人av| 欧美色就是色| 日韩和欧美的一区二区| 日韩电影不卡一区| 国内一区在线| 美女一区网站| 午夜精品久久久久久久99热| 日韩伦理电影网站| 欧美激情伊人电影| www555久久| 亚洲色图35p| 色鬼7777久久| 日韩精品亚洲视频| 亚洲欧洲国产综合| 亚洲精品一区av在线播放| 在线观看xxx| 日韩精品视频三区| 欧美拍拍视频| 在线观看日韩av| 国产高清视频免费最新在线| 在线精品国产欧美| av播放在线| 久久激情视频久久| 在线中文字幕-区二区三区四区| 日韩亚洲国产中文字幕| 麻豆tv在线| 欧美激情中文网| 午夜欧美激情| 久久人人爽亚洲精品天堂| 免费**毛片在线| 久热精品在线视频| 色图在线观看| 26uuu日韩精品一区二区| 在线免费三级电影网站| 国产精品久久久久久久久久久新郎 | 亚洲国产日韩综合久久精品| 国产网站在线看| 一本久久a久久免费精品不卡| 黄色av一区二区| 欧美老女人在线| 亚洲乱熟女一区二区| 国产视频精品免费播放| 四虎久久免费| 欧美激情一区二区三区在线视频观看| 国产传媒av在线| 国产999精品久久久| www.久久久.com| 久久久久久久久久久久久久久久av | 亚洲精品国产拍免费91在线| 韩国中文字幕2020精品| 美女999久久久精品视频| 国产h片在线观看| 国产精品色视频| 91嫩草精品| 日本婷婷久久久久久久久一区二区 | 1024免费在线视频| 欧美美女15p| 亚洲成人激情社区| 成人av影视在线| 欧美精品一二| 国产精品成人久久电影| 国产精品99久久久久久动医院| 欧美中日韩免费视频| 亚洲91视频| 国产在线青青草| 国产一区二区三区四区五区美女| 老熟妇精品一区二区三区| 国产精品久久久久久久久免费丝袜 | 亚洲 精品 综合 精品 自拍| 中文字幕亚洲专区| 小h片在线观看| 91九色在线观看| 波多野结衣在线播放一区| 国产曰肥老太婆无遮挡| 久久99精品久久久久| 国产精品边吃奶边做爽| 亚洲精品美国一| 曰批又黄又爽免费视频| 日韩av综合网站| 国产三线在线| 91精品久久久久久久| 激情综合网站| 国产3p露脸普通话对白| 国产麻豆精品在线观看| 国产又黄又粗视频| 欧美午夜精品久久久久久人妖| 丰满少妇在线观看bd| www日韩中文字幕在线看| 朝桐光一区二区| 精品国产一区二区三区免费| 午夜日韩av| 国产黄色一区二区三区| 国产精品久久久久久一区二区三区 | 成人福利在线| 欧洲中文字幕国产精品| 国产三级精品三级在线观看国产| 五月天在线免费视频| 精品在线一区二区| 中国美女黄色一级片| 日本福利一区二区| 欧美偷拍视频| 97视频在线观看亚洲| 国产成人一二片| 97视频在线免费| 成人福利视频网站| 久久精品视频久久| 亚洲第一色中文字幕| 男人天堂亚洲| 成人自拍爱视频| 精品91视频| 超碰caoprom| 精品国产1区2区| 四虎精品成人影院观看地址| 亚洲欧美日韩国产中文| 草草视频在线| 精品日本一区二区三区| 亚洲一区图片| 亚洲熟妇一区二区三区| 日本久久一区二区三区| 国产黄色片在线播放| 国产日韩在线看片| 天天射天天综合网| 91精品国产高清91久久久久久 | 中文字幕一区二区人妻痴汉电车| 国产亚洲精品久久久| 91国内外精品自在线播放| 性刺激综合网| 国产一区二区不卡| 国产主播在线观看| 日韩精品中文字| 欧美123区| 亚洲小视频在线播放| 成人av网站免费| 在线免费观看av网址| 日韩一区二区三区国产| 久久伊人影院| 日本在线xxx| 国产日本欧洲亚洲| 国产三级精品在线观看| 久久人91精品久久久久久不卡| 婷婷精品视频| 午夜激情av在线| 亚洲自拍欧美精品| 黄视频在线播放| 亚洲jizzjizz日本少妇| 亚洲经典在线| 影音先锋男人在线| 日韩欧美一级特黄在线播放| 国模私拍一区二区国模曼安| 日韩国产美国| 成人午夜免费电影| 一区二区三区麻豆| 久久777国产线看观看精品| 女厕嘘嘘一区二区在线播放| 999这里有精品| 午夜精品久久久久| 日韩av中文| 国产一级精品aaaaa看| 老司机免费视频久久| 九九九久久久久| 亚洲色图激情小说| 亚洲三级av| 国产成人精品视频ⅴa片软件竹菊| 亚洲精品国产成人久久av盗摄 | 综合自拍亚洲综合图不卡区| 天天干天天色天天| 国产精品久久久久久av下载红粉| 欧美日韩午夜| 美国美女黄色片| 亚洲精品久久久久中文字幕欢迎你| 自拍偷拍欧美日韩|