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

別瞎寫工具類了,Spring自帶的不香嗎?

開發(fā) 開發(fā)工具
今天這篇文章專門跟大家一起總結(jié)一下,Spring框架本身自帶的一些好用的工具類,希望對你會有所幫助。

前言

最近有些小伙伴,希望我分享一些好用的工具類,幫他們提升開發(fā)效率。

今天這篇文章專門跟大家一起總結(jié)一下,Spring框架本身自帶的一些好用的工具類,希望對你會有所幫助。

1、Assert

很多時候,我們需要在代碼中做判斷:如果不滿足條件,則拋異常。

有沒有統(tǒng)一的封裝呢?

其實(shí)Spring給我們提供了Assert類,它表示斷言。

(1)斷言參數(shù)是否為空

斷言參數(shù)是否空,如果不滿足條件,則直接拋異常。

String str = null;
Assert.isNull(str, "str必須為空");
Assert.isNull(str, () -> "str必須為空");
Assert.notNull(str, "str不能為空");

如果不滿足條件就會拋出IllegalArgumentException異常。

(2)斷言集合是否為空

斷言集合是否空,如果不滿足條件,則直接拋異常。

List<String> list = null;
Map<String, String> map = null;
Assert.notEmpty(list, "list不能為空");
Assert.notEmpty(list, () -> "list不能為空");
Assert.notEmpty(map, "map不能為空");

如果不滿足條件就會拋出IllegalArgumentException異常。

(3)斷言條件是否為空

斷言是否滿足某個條件,如果不滿足條件,則直接拋異常。

List<String> list = null;
Assert.isTrue(CollectionUtils.isNotEmpty(list), "list不能為空");
Assert.isTrue(CollectionUtils.isNotEmpty(list), () -> "list不能為空");

當(dāng)然Assert類還有一些其他的功能,這里就不多介紹了。

2、StringUtils

在我們?nèi)粘i_發(fā)過程中,對字符串的操作是非常頻繁的,但JDK提供的對于字符串操作的方法,過于簡單,無法滿足我們開發(fā)中的需求。

其實(shí)Spring提供了工具類StringUtils,對JDK中一些字符串的操作進(jìn)行了擴(kuò)展。

(1)判空

StringUtils類其實(shí)有個isEmpty()方法判斷,不過已經(jīng)被廢棄了。

我們可以改成使用hasLength()方法判斷,例如:

if (!StringUtils.hasLength("")) {
  System.out.println("字符串為空");
}

(2)去掉空格

對于后端的很多接口,經(jīng)常需要去掉前后空格,我們可以使用String類的trim(),但是如果要同時去掉中間的空格呢?

可以使用StringUtils類的trimAllWhitespace方法。

例如:

@Test
public void testEmpty() {
    System.out.println("1" + StringUtils.trimAllWhitespace(" 蘇三說技術(shù) 測試 ") + "1");
}

這個方法執(zhí)行接口:1蘇三說技術(shù)測試1,會把中間的空格也去掉了。

(3)判斷開頭或結(jié)尾字符串

要判斷一個字符串,是不是以某個固定字符串開頭或者結(jié)尾,是非常常見的需求。

我們可以使用StringUtils類的startsWithIgnoreCase和endsWithIgnoreCase,可以忽略大小寫比較字符串。

例如:

@Test
public void testEmpty() {
    System.out.println(StringUtils.startsWithIgnoreCase("蘇三說技術(shù)", "蘇三"));
    System.out.println(StringUtils.endsWithIgnoreCase("蘇三說技術(shù)", "技術(shù)"));
}

該方法的執(zhí)行結(jié)果會返回兩個true。

(4)集合拼接字符串

有時候我們需要將某個字符串集合的所有元素,拼接成一個字符串,用逗號隔開。

這種場景可以使用StringUtils類的collectionToCommaDelimitedString方法。

例如:

@Test
public void testEmpty() {
    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    System.out.println(StringUtils.collectionToCommaDelimitedString(list));
}

該方法的執(zhí)行結(jié)果:a,b,c

這個工具類里面還有很多有用的方法:

3、CollectionUtils

在我們?nèi)粘i_發(fā)當(dāng)中,經(jīng)常會遇到集合,比如:list判空的情況。

其實(shí)Spring專門為我們提供了,給集合判空的工具類:CollectionUtils,它位于org.springframework.util包下。

對于一些簡單的集合判斷,集合中是否包含某個元素,集合轉(zhuǎn)數(shù)組,用這個工具還是非常方便的。

(1)集合判空

通過CollectionUtils工具類的isEmpty方法可以輕松判斷集合是否為空。

例如:

List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);

if (CollectionUtils.isEmpty(list)) {
    System.out.println("集合為空");
}

(2)判斷元素是否存在

通過CollectionUtils工具類的contains方法,可以判斷元素在集合中是否存在。

例如:

List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);

if (CollectionUtils.contains(list.iterator(), 3)) {
    System.out.println("元素存在");
}

在判斷時需要先調(diào)用集合的iterator()方法。

4、ObjectUtils

Spring為我們專門提供了一個對象操作工具:ObjectUtils,也在org.springframework.util包下。

里面有很多非常有用的方法。

(1)判空

之前已經(jīng)介紹過字符串判空工具類StringUtils,和集合的判空工具類CollectionUtils。

而ObjectUtils工具的判空更強(qiáng)大,支持:對象、字符串、集合、數(shù)組、Optional、Map的判斷。

例如:

@Test
public void testEmpty() {
    String a = "123";
    Integer b = new Integer(1);
    List<String> c = new ArrayList<>();
    Integer[] d = new Integer[];
    c.add(a);
    Map<String, String> e = new HashMap<>();
    e.put(a, a);
    Optional<String> f = Optional.of(a);
    if (!ObjectUtils.isEmpty(a)) {
        System.out.println("a不為空");
    }
    if (!ObjectUtils.isEmpty(b)) {
        System.out.println("b不為空");
    }
    if (!ObjectUtils.isEmpty(c)) {
        System.out.println("c不為空");
    }
    if (!ObjectUtils.isEmpty(d)) {
        System.out.println("d不為空");
    }
    if (!ObjectUtils.isEmpty(e)) {
        System.out.println("e不為空");
    }
    if (!ObjectUtils.isEmpty(f)) {
        System.out.println("f不為空");
    }
}

這6種對象的判空都支持,非常強(qiáng)大。

(2)判斷兩個對象相等

之前我們用Objects.equals方法,判斷兩個對象是否相等,經(jīng)常會出現(xiàn)空指針問題。

而ObjectUtils類提供了安全的判斷兩個對象相等的方法:nullSafeEquals。

例如:

@Test
public void testEquals() {
    String a = "123";
    String b = null;
    System.out.println(ObjectUtils.nullSafeEquals(a, b));
}

這個例子返回的是false,不會出現(xiàn)空指針的問題。

甚至可以判斷兩個數(shù)組是否相等。

例如:

@Test
public void testArrayEquals() {
    String[] a = new String[]{"123"};
    String[] b = new String[]{"123"};
    System.out.println(ObjectUtils.nullSafeEquals(a, b));
}

這個例子的執(zhí)行結(jié)果返回的是true。

(3)獲取對象的hashCode

如果想要快速獲取某個對象十六進(jìn)制的hashCode,則可以調(diào)用getIdentityHexString方法。

例如:

@Test
public void testIdentityHex() {
    String a = "123";
    System.out.println(ObjectUtils.getIdentityHexString(a));
}

執(zhí)行結(jié)果:2925bf5b

5、ClassUtils

Spring的org.springframework.util包下的ClassUtils類,它里面有很多讓我們驚喜的功能。

它里面包含了類和對象相關(guān)的很多非常實(shí)用的方法。

(1)獲取對象的所有接口

如果你想獲取某個對象的所有接口,可以使用ClassUtils的getAllInterfaces方法。例如:

Class<?>[] allInterfaces = ClassUtils.getAllInterfaces(new User());

(2)獲取某個類的包名

如果你想獲取某個類的包名,可以使用ClassUtils的getPackageName方法。例如:

String packageName = ClassUtils.getPackageName(User.class);
System.out.println(packageName);

(3)判斷某個類是否內(nèi)部類

如果你想判斷某個類是否內(nèi)部類,可以使用ClassUtils的isInnerClass方法。例如:

System.out.println(ClassUtils.isInnerClass(User.class));

(4)判斷對象是否代理對象

如果你想判斷對象是否代理對象,可以使用ClassUtils的isCglibProxy方法。例如:

System.out.println(ClassUtils.isCglibProxy(new User()));

ClassUtils還有很多有用的方法,等待著你去發(fā)掘。感興趣的朋友,可以看看下面內(nèi)容:

6、BeanUtils

Spring給我們提供了一個JavaBean的工具類,它在org.springframework.beans包下面,它的名字叫做:BeanUtils。

讓我們一起看看這個工具可以帶給我們哪些驚喜。

(1)拷貝對象的屬性

曾幾何時,你有沒有這樣的需求:把某個對象中的所有屬性,都拷貝到另外一個對象中。這時就能使用BeanUtils的copyProperties方法。例如:

User user1 = new User();
user1.setId(1L);
user1.setName("蘇三說技術(shù)");
user1.setAddress("成都");

User user2 = new User();
BeanUtils.copyProperties(user1, user2);
System.out.println(user2);

(2)實(shí)例化某個類

如果你想通過反射實(shí)例化一個類的對象,可以使用BeanUtils的instantiateClass方法。例如:

User user = BeanUtils.instantiateClass(User.class);
System.out.println(user);

(3)獲取指定類的指定方法

如果你想獲取某個類的指定方法,可以使用BeanUtils的findDeclaredMethod方法。例如:

Method declaredMethod = BeanUtils.findDeclaredMethod(User.class, "getId");
System.out.println(declaredMethod.getName());

(4)獲取指定方法的參數(shù)

如果你想獲取某個方法的參數(shù),可以使用BeanUtils的findPropertyForMethod方法。例如:

Method declaredMethod = BeanUtils.findDeclaredMethod(User.class, "getId");
PropertyDescriptor propertyForMethod = BeanUtils.findPropertyForMethod(declaredMethod);
System.out.println(propertyForMethod.getName());

如果你對BeanUtils比較感興趣,可以看看下面內(nèi)容:

7、ReflectionUtils

有時候,我們需要在項(xiàng)目中使用反射功能,如果使用最原始的方法來開發(fā),代碼量會非常多,而且很麻煩,它需要處理一大堆異常以及訪問權(quán)限等問題。

好消息是Spring給我們提供了一個ReflectionUtils工具,它在org.springframework.util包下面。

(1)獲取方法

如果你想獲取某個類的某個方法,可以使用ReflectionUtils類的findMethod方法。例如:

Method method = ReflectionUtils.findMethod(User.class, "getId");

(2)獲取字段

如果你想獲取某個類的某個字段,可以使用ReflectionUtils類的findField方法。例如:

Field field = ReflectionUtils.findField(User.class, "id");

(3)執(zhí)行方法

如果你想通過反射調(diào)用某個方法,傳遞參數(shù),可以使用ReflectionUtils類的invokeMethod方法。例如:

ReflectionUtils.invokeMethod(method, springContextsUtil.getBean(beanName), param);

(4)判斷字段是否常量

如果你想判斷某個字段是否常量,可以使用ReflectionUtils類的isPublicStaticFinal方法。例如:

Field field = ReflectionUtils.findField(User.class, "id");
System.out.println(ReflectionUtils.isPublicStaticFinal(field));

(5)判斷是否equals方法

如果你想判斷某個方法是否equals方法,可以使用ReflectionUtils類的isEqualsMethod方法。例如:

Method method = ReflectionUtils.findMethod(User.class, "getId");
System.out.println(ReflectionUtils.isEqualsMethod(method));

當(dāng)然這個類還有不少有趣的方法,感興趣的朋友,可以看看下面內(nèi)容:

8、Base64Utils

有時候,為了安全考慮,需要將參數(shù)只用base64編碼。

這時就能直接使用org.springframework.util包下的Base64Utils工具類。

它里面包含:encode和decode方法,用于對數(shù)據(jù)進(jìn)行編碼和解碼。

例如:

String str = "abc";
String encode = new String(Base64Utils.encode(str.getBytes()));
System.out.println("編碼后:" + encode);
try {
    String decode = new String(Base64Utils.decode(encode.getBytes()), "utf8");
    System.out.println("解碼:" + decode);
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

執(zhí)行結(jié)果:

編碼后:YWJj
解碼后:abc

9、SerializationUtils

有時候,我們需要把數(shù)據(jù)進(jìn)行序列化和反序列化處理。

傳統(tǒng)的做法是某個類實(shí)現(xiàn)Serializable接口,然后重新它的writeObject和readObject方法。

但如果使用org.springframework.util包下的SerializationUtils工具類,能更輕松實(shí)現(xiàn)序列化和反序列化功能。

例如:

Map<String, String> map = Maps.newHashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
byte[] serialize = SerializationUtils.serialize(map);
Object deserialize = SerializationUtils.deserialize(serialize);
System.out.println(deserialize);

10、HttpStatus

很多時候,我們會在代碼中定義http的返回碼,比如:接口正常返回200,異常返回500,接口找不到返回404,接口不可用返回502等。

private int SUCCESS_CODE = 200;
private int ERROR_CODE = 500;
private int NOT_FOUND_CODE = 404;

其實(shí)org.springframework.http包下的HttpStatus枚舉,或者org.apache.http包下的HttpStatus接口,已經(jīng)把常用的http返回碼給我們定義好了,直接拿來用就可以了,真的不用再重復(fù)定義了。

11、HtmlUtils

有時候,用戶輸入的內(nèi)容中包含了一些特殊的標(biāo)簽,比如<,如果不錯處理程序可能會報(bào)錯。

而且為了安全性,對用戶輸入的特色字符,也需要做轉(zhuǎn)義,防止一些SQL注入,或者XSS攻擊等。

其實(shí)Spring給我們提供了一個專門處理html的工具:HtmlUtils,我們可以直接用它來做轉(zhuǎn)義,使用起來非常方便。

例如:

@Test
public void testHtml() {
    String specialStr = "<div id=\"testDiv\">test1;test2</div>";
    String str1 = HtmlUtils.htmlEscape(specialStr);
    System.out.println(str1);
}

執(zhí)行結(jié)果:&lt;div id=&quot;testDiv&quot;&gt;test1;test2&lt;/div&gt。

責(zé)任編輯:姜華 來源: 蘇三說技術(shù)
相關(guān)推薦

2020-05-09 10:18:31

Java開源工具

2025-08-26 01:00:00

2021-12-17 15:05:55

CSSwhenelse

2023-03-26 09:17:42

CRUD項(xiàng)目線程池

2025-09-23 09:32:30

2020-01-21 21:15:16

WiFi網(wǎng)絡(luò)WiFi6

2021-12-02 06:34:34

GraylogELK日志

2025-06-25 09:31:41

2021-12-03 10:46:49

ELKGraylog運(yùn)維

2021-12-05 23:17:18

iOS蘋果系統(tǒng)

2020-07-03 15:10:35

Java Rust 開發(fā)

2021-01-11 08:03:30

阿里中臺項(xiàng)目

2021-04-06 10:48:52

MySQLElasticsear數(shù)據(jù)庫

2021-07-08 06:52:41

ESClickHouse Lucene

2025-08-15 12:19:08

2021-05-19 09:37:45

SessionTokencookie

2023-12-13 08:11:36

2021-11-02 16:44:40

部署DevtoolsJRebel

2024-01-10 14:32:12

線程PythonCPU

2023-01-04 07:33:34

機(jī)器代碼人工智能
點(diǎn)贊
收藏

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

女子免费在线观看视频www| 成人午夜精品视频| 成人动漫视频| 亚洲制服丝袜在线| 欧美理论一区二区| 国产强伦人妻毛片| 日韩亚洲在线| xxx成人少妇69| 波多野结衣加勒比| 成人在线观看免费视频| 亚洲第一狼人社区| 亚洲免费不卡| 殴美一级特黄aaaaaa| 日韩高清电影一区| 亚洲18私人小影院| xxxx日本少妇| 国产欧美日韩视频在线| 精品久久久久一区| 超碰在线播放91| 国产理论电影在线| 国产精品三级电影| 农村寡妇一区二区三区| 精品人妻无码一区二区色欲产成人| 国产精品尤物| 欧美成人免费一级人片100| a毛片毛片av永久免费| 欧美黄色一级| 欧美日韩一区不卡| 成人综合视频在线| 免费在线观看的电影网站| 国产精品久久久爽爽爽麻豆色哟哟 | 午夜亚洲福利在线老司机| 久久成人一区二区| www成人啪啪18软件| 免费精品国产| 亚洲第一视频网站| 人妻精品久久久久中文字幕69| 欧美精品高清| 欧美网站在线观看| 成年人网站免费视频| 日韩激情av| 亚洲人成小说网站色在线| 五月天丁香综合久久国产| 色视频在线观看免费| 成人h版在线观看| 成人黄色片视频网站| 国产精品免费无遮挡| 秋霞午夜鲁丝一区二区老狼| 热久久视久久精品18亚洲精品| 日本免费观看视| 精品69视频一区二区三区Q| 美日韩精品视频免费看| 永久免费看mv网站入口| 色婷婷色综合| 日韩在线观看免费全集电视剧网站| 黄色aaa视频| 久久av免费| 亚洲图中文字幕| 日本精品在线观看视频| 成人精品天堂一区二区三区| 中文字幕在线国产精品| 国产免费一区二区三区四区| 97精品视频| 久久久成人精品| 老妇女50岁三级| 精品动漫av| 69影院欧美专区视频| 欧美a∨亚洲欧美亚洲| 久久久久久久欧美精品| 国产精品国产三级国产aⅴ9色| 无码任你躁久久久久久久| 日韩av一级片| 91九色国产视频| 精品国产av一区二区三区| 国产成人在线视频免费播放| 97av自拍| 亚洲色欧美另类| 国产亚洲制服色| 樱花www成人免费视频| 久久精品视频观看| 亚洲一区二区3| 国模吧无码一区二区三区| 日韩经典一区| 欧美一二区视频| 男男一级淫片免费播放| 欧美一区2区| 不卡av电影在线观看| 日韩av在线天堂| 日本vs亚洲vs韩国一区三区二区 | 中文字幕区一区二区三| 亚洲黄色在线看| 日本污视频网站| 亚洲欧美综合国产精品一区| 欧美一级免费看| 中文字幕欧美人妻精品| 国产91丝袜在线播放| 欧美日韩综合精品| 四虎影院观看视频在线观看 | 综合成人在线| 亚洲美女性视频| 国产真实乱在线更新| 国产欧美一区二区色老头| 国产精品极品美女在线观看免费| 99产精品成人啪免费网站| 91麻豆国产香蕉久久精品| 最新欧美日韩亚洲| 日韩脚交footjobhdboots| 欧美精品xxxxbbbb| 三级黄色片网站| 在线国产一区| 国产精品扒开腿做| 天天综合在线视频| 亚洲女同一区二区| 邪恶网站在线观看| 日韩极品少妇| 欧美大片在线看| 一级特黄录像免费看| 久久久久免费观看| 国产不卡一区二区视频| 国产精品成人**免费视频| 91高清一区| 国产一区二区成人| 日韩欧美不卡视频| 国产综合色精品一区二区三区| 欧美精品七区| 麻豆理论在线观看| 日韩三级视频中文字幕| 国产精品夜夜夜爽阿娇| 日韩精品一区第一页| 国精产品一区二区| 牛牛在线精品视频| 日韩你懂的在线观看| 99热99这里只有精品| 男女性色大片免费观看一区二区| 精品一卡二卡三卡四卡日本乱码| 伊人春色在线观看| 欧美精品第一页| 亚洲女人毛茸茸高潮| 日韩精品一级二级| 日韩av在线一区二区三区| 亚洲天堂手机| 日韩高清有码在线| 制服.丝袜.亚洲.中文.综合懂色| 懂色av一区二区夜夜嗨| 黄色录像特级片| 欧美视频二区欧美影视| 欧美成人激情视频| 精品国产999久久久免费| 亚洲免费成人av| 午夜视频在线网站| 久久久久久久久99精品大| 国产日韩换脸av一区在线观看| av资源网在线观看| 欧美午夜宅男影院| 国产一区二区三区视频播放| 免费国产亚洲视频| 熟妇熟女乱妇乱女网站| 国产乱码精品一区二区三区亚洲人| 日韩一区二区三区国产| 国产视频第二页| 亚洲黄色在线视频| 99久久免费看精品国产一区| 国产美女精品| 日韩理论片在线观看| 岛国一区二区| 久久亚洲国产精品| 不卡视频免费在线观看| 亚洲一区在线观看免费| 精品中文字幕在线播放| 日韩综合小视频| 在线观看福利一区| 香蕉免费一区二区三区在线观看| 久久久久久国产精品久久| 色呦呦免费观看| 色综合久久综合| ass极品国模人体欣赏| 精品亚洲欧美一区| 男女日批视频在线观看| 国产精品一区2区3区| 国产在线观看一区二区三区| 里番在线播放| 亚洲男人第一网站| 一二三四区视频| 亚洲午夜精品在线| 亚洲国产av一区| 极品美女销魂一区二区三区| 成人在线播放网址| 欧美码中文字幕在线| 亚洲最大的免费| 亚洲精品中文字幕| 精品激情国产视频| 亚洲av成人无码网天堂| 欧美精品第1页| 黄网在线观看视频| 国产精品毛片久久久久久久| 高清中文字幕mv的电影| 秋霞成人午夜伦在线观看| 亚洲色欲久久久综合网东京热| 免费成人av| 亚洲最大成人免费视频| 亚洲www.| 久久久久在线观看| 91在线免费看| 亚洲精品v天堂中文字幕| 亚洲天堂手机在线| 黑人狂躁日本妞一区二区三区| 国产精品69久久久久孕妇欧美| 99久久精品国产观看| 久久婷婷中文字幕| 日本午夜精品一区二区三区电影| 大伊香蕉精品视频在线| 99久久.com| 欧美一区二区三区成人久久片| 日本一区二区三区视频在线看 | 亚洲一区二区四区| 日本韩国欧美超级黄在线观看| 国产精品偷伦一区二区| 在线天堂资源| 久久久久中文字幕| 国产激情小视频在线| 亚洲人午夜精品免费| 日韩一区免费视频| 日韩一二三区不卡| 国产精品视频a| 在线观看日产精品| 无码人妻一区二区三区线 | 亚洲国产成人精品女人久久| 亚洲午夜影视影院在线观看| 糖心vlog免费在线观看| 中文字幕乱码久久午夜不卡| 动漫精品一区二区三区| av中文一区二区三区| 亚洲精品乱码久久久久久9色| 免费av成人在线| 三级a在线观看| 老妇喷水一区二区三区| 国产免费毛卡片| 亚洲美女网站| 欧美一区二区三区爽大粗免费 | 亚洲少妇久久久| 天堂va蜜桃一区二区三区| 国产精品333| 99精品国产福利在线观看免费| 欧美性潮喷xxxxx免费视频看| 欧美.www| 欧美黄网在线观看| 欧美深夜福利| 欧美黑人在线观看| 国产真实久久| 青青青青草视频| 国产亚洲永久域名| 男女av免费观看| 老牛国产精品一区的观看方式| 18禁男女爽爽爽午夜网站免费| 午夜亚洲精品| 亚洲五月天综合| 久久99精品久久久| 欧美一区二区三区影院| 粉嫩绯色av一区二区在线观看| 日韩av手机在线播放| 91香蕉视频mp4| 精品人伦一区二区三电影| 中文字幕av一区二区三区免费看| 色偷偷男人天堂| 亚洲激情一二三区| 国产污片在线观看| 欧美日韩人人澡狠狠躁视频| 男人天堂2024| 欧美日韩中文精品| av官网在线观看| 亚洲激情免费观看| 国产69久久| 久久午夜a级毛片| freexxx性亚洲精品| 日本亚洲欧洲色α| 亚洲精品一区av| 国产精华一区| 国产亚洲第一伦理第一区| 亚洲精品一卡二卡三卡四卡| 欧美成熟视频| 欧美xxxxx在线视频| 精品亚洲成av人在线观看| 无码人妻一区二区三区精品视频| 99国产精品视频免费观看| 亚洲一级片在线播放| 亚洲精品福利视频网站| 亚洲伊人成人网| 538在线一区二区精品国产| 欧美熟妇另类久久久久久不卡| 亚洲性视频网址| 免费电影网站在线视频观看福利| 青青草原成人在线视频| 在线免费成人| 久久一区免费| 91精品推荐| 男人亚洲天堂网| 国产乱一区二区| av男人的天堂av| 亚洲综合另类小说| 中文字幕日本人妻久久久免费| 欧美大片免费久久精品三p| 国产爆初菊在线观看免费视频网站| 欧美激情亚洲另类| 成人网ww555视频免费看| 国产欧美在线一区二区| 国产精品久久久久久久久妇女 | 久久99精品国产.久久久久久| 黄色免费看视频| 亚洲天堂成人网| 无码一区二区三区| 亚洲第一视频网| 在线视频国产区| 国产精品国语对白| 久久国产精品免费精品3p| 四虎免费在线观看视频| 久久看片网站| 欧美成人三级伦在线观看| 尤物在线观看一区| 一级久久久久久久| 日韩国产高清污视频在线观看| 密臀av在线| 亚洲自拍偷拍福利| 999国产精品永久免费视频app| 成人在线观看a| 不卡的电视剧免费网站有什么| 国产女片a归国片aa| 欧美精品自拍偷拍| 成人在线免费观看| 欧美综合在线观看| 午夜精品影视国产一区在线麻豆| 白白操在线视频| 国产精品亚洲а∨天堂免在线| 四虎影视1304t| 欧美吻胸吃奶大尺度电影| 狠狠狠综合7777久夜色撩人| 欧美又大粗又爽又黄大片视频| 久久精品亚洲成在人线av网址| 久久男人资源站| 国产盗摄视频一区二区三区| 无码人妻精品一区二区三区夜夜嗨| 欧美丰满嫩嫩电影| 瑟瑟视频在线| 91久久久久久久久| 99久久精品网| 欧美性受xxxxxx黑人xyx性爽| 国产精品久久久久影院| 一区二区视频在线免费观看| 丝袜美腿亚洲一区二区| 久久国内精品| 中文字幕不卡每日更新1区2区| 久久99久久99小草精品免视看| 国产极品美女在线| 日韩一区二区在线观看视频播放| 视频在线这里都是精品| 国产精品v欧美精品v日韩| 激情成人亚洲| 中文字幕一区二区久久人妻网站 | 91无套直看片红桃| 免费av在线一区| 国产精品高潮呻吟久久久久| 国产九九九九九| www成人在线观看| 波多野结衣一区二区三区在线| 中文字幕国产精品久久| 国产精品18| 国产成人精品电影久久久| 最近中文字幕免费在线观看| 日韩欧美一级二级三级| 在线视频国产区| 国产一区二区不卡视频在线观看| 在线观看一区视频| 扒开jk护士狂揉免费| 欧美亚洲自拍偷拍| www国产在线观看| 国产一级二级三级精品| 三级不卡在线观看| 神马久久精品综合| 精品国产伦一区二区三区观看体验 | 99精品黄色片免费大全| 波多野结衣绝顶大高潮| 久久影视电视剧免费网站| 国产日韩三级| 一区二区三区 日韩| 亚洲一区二区三区小说| 久久天堂电影| 亚洲在线www| 免费日韩视频| 天天看片中文字幕| 亚洲男人天天操| 日本一区精品视频| 乱子伦视频在线看| 亚洲欧美一区二区三区久本道91| 欧美自拍偷拍第一页| 国产精品爽爽爽爽爽爽在线观看| 中文字幕免费一区二区三区| 美女100%无挡| 日韩精品一区二区三区四区| 蜜桃精品在线| 国产免费一区二区视频| 中文字幕精品三区|