精品欧美一区二区三区在线观看 _久久久久国色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)

伊人久久亚洲热| 欧美h版在线观看| 国产欧美日韩三区| 成人国产精品一区| 国产性生活网站| 亚洲美女久久| 欧美电影一区二区三区| 国产女人18毛片| 日本天堂在线| 九九在线精品视频| 91高清在线免费观看| 懂色av蜜臀av粉嫩av永久| 哺乳一区二区三区中文视频| 色视频欧美一区二区三区| 9191国产视频| 在线视频自拍| 久久综合色播五月| 99久久精品无码一区二区毛片| 日韩在线视频不卡| 欧美三级乱码| 日韩在线观看免费全| 中文字幕一区二区久久人妻网站 | 欧洲av在线播放| 美腿丝袜亚洲一区| 欧美一级在线播放| 久久亚洲av午夜福利精品一区| 成人精品影院| 国产丝袜高跟一区| 黑人玩弄人妻一区二区三区| 91精品国产一区二区在线观看| 欧美日韩一区二区在线播放| 国产 欧美 日韩 一区| 麻豆网站在线| 欧美激情一区二区在线| 免费电影一区| 五月天婷婷在线播放| 国产91高潮流白浆在线麻豆| 成人国产精品色哟哟| 怡红院成永久免费人全部视频| 欧美专区在线| 日本精品中文字幕| 免费的毛片视频| 国产欧美欧美| 欧美性视频网站| 国产又爽又黄的视频| 亚洲高清毛片| 欧美激情一区二区三区在线视频观看| 国产免费一区二区三区四区| 欧美系列电影免费观看| 日韩av在线免费| 国产视频久久久久久| 红杏一区二区三区| 亚洲国产私拍精品国模在线观看| 无码人妻丰满熟妇区毛片蜜桃精品 | 国产欧美日韩精品一区二区免费| 精品香蕉在线观看视频一| 国产十八熟妇av成人一区| 精品av导航| 日韩精品福利在线| 午夜理伦三级做爰电影| 久草成人在线| 中文字幕自拍vr一区二区三区| 女人黄色一级片| 99久久婷婷| 九九精品视频在线观看| 久久精品www人人爽人人| 亚洲婷婷在线| 欧美专区中文字幕| 国产一级片一区二区| 久久精品二区亚洲w码| 91美女片黄在线观看游戏| www久久久久久| eeuss国产一区二区三区| 欧美18视频| 日本三级视频在线播放| 亚洲精品国久久99热| av在线播放亚洲| 欧美三级精品| 宅男在线国产精品| 亚洲av成人精品一区二区三区| 天堂俺去俺来也www久久婷婷| 亚洲天堂成人在线| 91视频青青草| 亚洲综合欧美| 国产精品久久久亚洲| 国产日韩欧美一区二区东京热| 丁香啪啪综合成人亚洲小说 | 下面一进一出好爽视频| 国产色噜噜噜91在线精品| 亚洲日韩欧美视频一区| 日韩欧美国产成人精品免费| 中文字幕乱码亚洲无线精品一区| 高清一区二区三区四区五区 | 日韩一区二区视频| aa片在线观看视频在线播放| 久久一区91| 亚州av一区二区| 一本色道久久综合精品婷婷| 成人黄色在线网站| 亚洲资源在线网| h片精品在线观看| 欧美色网一区二区| 日本一级片在线播放| 香蕉视频官网在线观看日本一区二区| 久久久久久久999精品视频| 日韩黄色一级视频| 成人动漫精品一区二区| 一区二区精品免费视频| 99色在线观看| 欧美高清一级片在线| 性欧美13一14内谢| 亚洲欧美综合久久久| 日韩av电影在线免费播放| 亚洲成a人片77777精品| 一色桃子久久精品亚洲| caopor在线视频| 九色丨蝌蚪丨成人| 欧美成在线视频| 久久国产香蕉视频| 91美女片黄在线观看91美女| 成人国产在线看| 欧美亚洲福利| 国产午夜精品全部视频播放| www成人在线| 成人黄色一级视频| 亚洲精品天堂成人片av在线播放| 成人全视频免费观看在线看| 日韩精品极品在线观看| 日韩欧美高清在线观看| 国产激情精品久久久第一区二区| 亚洲一区三区| 六九午夜精品视频| 在线视频精品一| 波多野结衣二区三区| www国产精品av| 国产精品裸体瑜伽视频| 国产福利资源一区| 欧美精品videos另类日本| av中文在线观看| 亚洲色图在线看| 色综合五月婷婷| 亚洲一区二区| 91最新在线免费观看| 免费在线毛片网站| 欧美高清视频不卡网| 无码人妻精品中文字幕| 激情综合色播五月| 这里只有精品66| 在线成人免费| 久久视频在线看| h狠狠躁死你h高h| 一区二区三区在线免费视频 | 久久无码av三级| 国产福利视频在线播放| 国产一区二区三区91| 国产精品高清免费在线观看| 高清中文字幕一区二区三区| 欧美亚洲国产bt| 制服丨自拍丨欧美丨动漫丨| 久久成人免费网站| 777久久精品一区二区三区无码| 久久久久久爱| 午夜精品蜜臀一区二区三区免费| 天堂a中文在线| 欧美综合视频在线观看| 国产欧美小视频| 青青草97国产精品免费观看无弹窗版| 亚洲国产一区二区精品视频| 欧洲亚洲精品| 欧美黄色片免费观看| 天天干天天色天天| 欧洲精品视频在线观看| 中文字幕资源站| 东方欧美亚洲色图在线| 国产精品国产亚洲精品看不卡| 亚洲瘦老头同性70tv| 国产精品日韩一区| av片在线观看网站| 日韩精品免费在线视频观看| 精品国产www| 一区二区三区美女视频| 真人bbbbbbbbb毛片| 青草av.久久免费一区| 三上悠亚免费在线观看| 久久悠悠精品综合网| 国产伦精品一区二区三区精品视频| av网址在线| 亚洲精品一二区| 91亚洲国产成人久久精品麻豆| 一区二区三区欧美久久| 国产美女精品久久| 国产盗摄一区二区三区| 成年人视频在线免费| 中文在线日韩| 四虎永久在线精品免费一区二区| 日本亚州欧洲精品不卡| 日韩免费高清在线观看| 欧洲黄色一区| 中文字幕日韩精品在线观看| 内射后入在线观看一区| 欧美日韩一区高清| 久久久久久久久影院| 亚洲免费视频成人| 久久久久亚洲av无码a片| 国产99久久久国产精品免费看| 男女视频一区二区三区| 精品电影一区| 最新欧美日韩亚洲| 国产一区二区亚洲| 狠狠色综合欧美激情| avtt久久| 国产91成人在在线播放| av片哪里在线观看| 亚洲精品久久7777777| 国产毛片在线视频| 欧美中文字幕亚洲一区二区va在线 | 国产成人手机在线| 678五月天丁香亚洲综合网| 六月丁香婷婷综合| 亚洲国产一区二区a毛片| caoporn91| **网站欧美大片在线观看| 变态另类ts人妖一区二区| 97精品久久久午夜一区二区三区| 中文字幕一区二区在线观看视频| 青青草91视频| 日本久久精品一区二区| 久久精品男女| 久久久一本二本三本| 伊人久久大香线蕉av超碰演员| 秋霞在线一区二区| 91视频久久| 一本一本a久久| 俺要去色综合狠狠| 日韩一区免费观看| 国内精品视频在线观看| 日本不卡免费新一二三区| 亚洲视频分类| 热re99久久精品国99热蜜月| 综合亚洲自拍| 欧美日韩一区在线播放| 杨幂一区二区三区免费看视频| 精品视频一区在线| 日韩大尺度在线观看| 久久久久久一区| 午夜欧洲一区| 欧美一区1区三区3区公司 | 一区二区三区国产视频| 国产小视频在线| 亚洲视频自拍偷拍| 99免在线观看免费视频高清| 怡红院精品视频| 91最新在线| 久久久国产一区| 七七成人影院| 青青草原一区二区| 青青热久免费精品视频在线18| 国产精品第七影院| 免费视频观看成人| 亚洲最大的av网站| 99ri日韩精品视频| 蜜桃导航-精品导航| 精品国产一区二区三区噜噜噜 | 干b视频在线观看| 国产日韩欧美高清| 性生交大片免费全黄| 一区二区在线观看免费视频播放| 久久99久久久| 色综合天天天天做夜夜夜夜做| 伊人久久久久久久久久久久| 欧美精品第1页| 好吊视频一二三区| 国产亚洲人成a一在线v站| 免费成人黄色| 免费av在线一区| 婷婷六月国产精品久久不卡| 91精品久久久久久久久| 成人性生交大片免费看96| 欧美激情国产日韩| 亚洲国产精品久久久久蝴蝶传媒| 国产一区二区片| 日韩一区精品字幕| 黑人性生活视频| 久久久久亚洲综合| 91在线播放观看| 色婷婷精品久久二区二区蜜臂av | 和岳每晚弄的高潮嗷嗷叫视频| 新67194成人永久网站| 天堂一区在线观看| 成人福利视频网站| 国产精品成人在线视频| 亚洲午夜在线视频| 中文字幕视频在线播放| 精品国产91乱码一区二区三区 | 中文字幕人成人乱码| 男人靠女人免费视频网站 | 亚洲精品在线视频免费观看| 国产农村妇女毛片精品久久麻豆| 强行糟蹋人妻hd中文| 日韩欧美在线观看视频| 国产福利视频导航| 一个人www欧美| av3级在线| 成人网址在线观看| 经典一区二区| 人妻av中文系列| 国产一区二区三区在线观看免费| 国产手机在线观看| 亚洲国产精品一区二区尤物区| 中文字幕在线一| 亚洲欧美日韩图片| 成年人黄色大片在线| 亚洲999一在线观看www| 欧洲激情综合| 免费日韩视频在线观看| 成人aaaa免费全部观看| 外国一级黄色片| 欧美日韩高清一区二区三区| 女人天堂在线| 78色国产精品| 国内毛片久久| 91成人综合网| 国产福利精品一区| 国产性生活大片| 欧美二区三区的天堂| 三区四区在线视频| 国产精品午夜一区二区欲梦| 国内黄色精品| 免费看a级黄色片| 久久久三级国产网站| 中文字幕精品无码一区二区| 亚洲国产精品久久久久秋霞蜜臀 | 国产三级在线| 日韩女优在线播放| 美女亚洲一区| 日韩手机在线观看视频| 久久久久亚洲蜜桃| 日韩精品成人免费观看视频| 亚洲精品永久免费| 欧洲一区精品| 久久精品国产一区二区三区不卡| 黄色精品网站| 久久精品女同亚洲女同13| 亚洲va欧美va天堂v国产综合| 亚洲国产欧美另类| 国模精品视频一区二区三区| jazzjazz国产精品久久| 野外做受又硬又粗又大视频√| 国产福利一区二区| 日韩无码精品一区二区三区| 亚洲国产精品va在看黑人| 国产调教在线| 欧美激情www| 久久精品国内一区二区三区| 日韩在线观看免| 精品久久久久久最新网址| 成人免费网站观看| 欧美日韩天天操| 麻豆91小视频| 欧美日韩精品一区二区三区视频播放| 精品剧情在线观看| 久久uomeier| 亚洲高清资源综合久久精品| 激情国产一区二区 | 一本色道久久综合亚洲精品不卡| 97香蕉碰碰人妻国产欧美| 色综合婷婷久久| 午夜小视频在线| 国产伦精品一区二区三区视频免费| 国产日韩高清一区二区三区在线| 久久精品国产亚洲av久| 欧美片在线播放| 国产福利在线免费观看| 免费久久久一本精品久久区| 久久99精品国产.久久久久| 久草成人在线视频| 日韩精品电影网| av在线精品| 成人在线免费在线观看 | 日本在线视频免费观看| 亚洲女同性videos| 国产一区二区三区| 青青草原av在线播放| 成人免费一区二区三区视频| 亚洲精品第五页| 国产精品嫩草影院一区二区| 欧美黄污视频| 熟女高潮一区二区三区| 欧美岛国在线观看| 精品国模一区二区三区| 免费看日本黄色| 欧美激情一区二区| 殴美一级特黄aaaaaa| 国产女同一区二区| 国产农村妇女精品一区二区| 国产第一页浮力| 中文字幕欧美国内| 亚洲精品播放| 欧洲成人午夜精品无码区久久| 欧美最猛性xxxxx直播|