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

你用過Hutool嗎?趕緊試試吧!真香!

開發 開發工具
Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓Java語言也可以“甜甜的”。

前言

今天給大家介紹一個能夠幫助大家提升開發效率的開源工具包:hutool

Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓Java語言也可以“甜甜的”。

Hutool的設計思想是盡量減少重復的定義,讓項目中的util這個package盡量少,總的來說有如下的幾個思想:

  • 方法優先于對象
  • 自動識別優于用戶定義
  • 便捷性與靈活性并存
  • 適配與兼容
  • 可選依賴原則
  • 無侵入原則

Hutool是一個Java工具包類庫,對文件、流、加密解密、轉碼、正則、線程、XML等JDK方法進行封裝,組成各種Util工具類,可以幫助我們提升開發效率。

想要使用Hutool的功能,必須要先引入它的依賴,在項目的pom.xml文件中引入:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.26</version>
</dependency>

即可引入Hutool包的相關依賴。

接下來,我們一起看看Hutool包含了哪些強大的功能。

1.Convert

在Java開發中我們要面對各種各樣的類型轉換問題,比如:數組轉換成字符串,日期轉換成字符串等。

我們需要手寫許多代碼,或者專門處理異常,比較麻煩。

而Hutool包專門提供了Convert類,我們使用它做類型轉換,使用起來非常方便。

數字轉換為字符串:

int a = 1;
//aStr為"1"
String aStr = Convert.toStr(a);

轉換為指定類型數組:

long[] b = {1,2,3,4,5};
//bStr為:"[1, 2, 3, 4, 5]"
String bStr = Convert.toStr(b);

轉換為指定類型數組:

String[] b = { "1", "2", "3", "4" };
//結果為Integer數組
Integer[] intArray = Convert.toIntArray(b);

long[] c = {1,2,3,4,5};
//結果為Integer數組
Integer[] intArray2 = Convert.toIntArray(c);

轉換為日期對象:

String a = "2017-05-06";
Date value = Convert.toDate(a);

轉換為集合

Object[] a = {"a", "你", "好", "", 1};
List<?> list = Convert.convert(List.class, a);
//從4.1.11開始可以這么用
List<?> list = Convert.toList(a);

2.DateUtil

Java本身對日期時間的支持有限,并且Date和Calendar對象的并存導致各種方法使用混亂和復雜。

通常情況下,我們需要使用SimpleDateFormat類,做時間和字符串類型的轉換。

其實Hutool包專門提供了DateUtil類,給我們做時間和日期類型轉換的。

(1) Date和Calendar相互轉換

//當前時間
Date date = DateUtil.date();
//當前時間
Date date2 = DateUtil.date(Calendar.getInstance());

(2)字符串轉日期

將字符串轉換成Date類型:

String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);

自定義時間格式做類型轉換:

String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr, "yyyy-MM-dd");

(3)格式化日期輸出

String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);

//結果 2017/03/01
String format = DateUtil.format(date, "yyyy/MM/dd");

//常用格式的格式化,結果:2017-03-01
String formatDate = DateUtil.formatDate(date);

//結果:2017-03-01 00:00:00
String formatDateTime = DateUtil.formatDateTime(date);

//結果:00:00:00
String formatTime = DateUtil.formatTime(date);

(4)開始和結束時間

有的時候我們需要獲得每天的開始時間、結束時間,每月的開始和結束時間等等,DateUtil也提供了相關方法:

String dateStr = "2017-03-01 22:33:23";
Date date = DateUtil.parse(dateStr);

//一天的開始,結果:2017-03-01 00:00:00
Date beginOfDay = DateUtil.beginOfDay(date);

//一天的結束,結果:2017-03-01 23:59:59
Date endOfDay = DateUtil.endOfDay(date);

3.StrUtil

這個工具的用處類似于Apache Commons Lang中的StringUtil,常用的方法例如isBlank、isNotBlank、isEmpty、isNotEmpty。

(1)hasBlank方法

就是給定一些字符串,如果一旦有空的就返回true,常用于判斷好多字段是否有空的(例如web表單數據)。

這兩個方法的區別是hasEmpty只判斷是否為null或者空字符串(""),hasBlank則會把不可見字符也算做空,isEmpty和isBlank同理。

(2)removePrefix方法

這兩個是去掉字符串的前綴后綴的,例如去個文件名的擴展名啥。

String fileName = StrUtil.removeSuffix("pretty_girl.jpg", ".jpg")  //fileName -> pretty_girl

還有忽略大小寫的removePrefixIgnoreCase和removeSuffixIgnoreCase都比較實用。

(3)sub方法

不得不提一下這個方法,有人說String有了subString你還寫它干啥,我想說subString方法越界啥的都會報異常,而使用StrUtil的sub就不會報錯:

String str = "abcdefgh";
String strSub1 = StrUtil.sub(str, 2, 3); //strSub1 -> c
String strSub2 = StrUtil.sub(str, 2, -3); //strSub2 -> cde
String strSub3 = StrUtil.sub(str, 3, 2); //strSub2 -> c

(4)format方法

靈感來自slf4j,可以使用字符串模板代替字符串拼接。

String template = "{}愛{},就像老鼠愛大米";
String str = StrUtil.format(template, "我", "你"); //str -> 我愛你,就像老鼠愛大米

4.ReflectUtil

Java的反射機制,可以讓語言變得更加靈活,對對象的操作也更加“動態”,因此在某些情況下,反射可以做到事半功倍的效果。Hutool針對Java的反射機制做了工具化封裝,封裝包括:

  • 獲取構造方法
  • 獲取字段
  • 獲取字段值
  • 獲取方法
  • 執行方法(對象方法和靜態方法)

(1)獲取某個類的所有方法

Method[] methods = ReflectUtil.getMethods(ExamInfoDict.class);

(2)獲取某個類的指定方法

Method method = ReflectUtil.getMethod(ExamInfoDict.class, "getId");

(3)構造對象

ReflectUtil.newInstance(ExamInfoDict.class);

(4)執行方法

class TestClass {
    private int a;

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }
}
TestClass testClass = new TestClass();
ReflectUtil.invoke(testClass, "setA", 10);

5.IdUtil

在分布式環境中,唯一ID生成應用十分廣泛,生成方法也多種多樣,Hutool針對一些常用生成策略做了簡單封裝。

唯一ID生成器的工具類,涵蓋了:

  • UUID
  • ObjectId(MongoDB)
  • Snowflake(Twitter)

(1)UUID

UUID全稱通用唯一識別碼(universally unique identifier),JDK通過java.util.UUID提供了 Leach-Salz 變體的封裝。在Hutool中,生成一個UUID字符串方法如下:

//生成的UUID是帶-的字符串,類似于:a5c8a5e8-df2b-4706-bea4-08d0939410e3
String uuid = IdUtil.randomUUID();

//生成的是不帶-的字符串,類似于:b17f24ff026d40949c85a24f4f375d42
String simpleUUID = IdUtil.simpleUUID();

說明 Hutool重寫java.util.UUID的邏輯,對應類為cn.hutool.core.lang.UUID,使生成不帶-的UUID字符串不再需要做字符替換,性能提升一倍左右。

(2)ObjectId

ObjectId是MongoDB數據庫的一種唯一ID生成策略,是UUID version1的變種,詳細介紹可見:服務化框架-分布式Unique ID的生成方法一覽。

Hutool針對此封裝了cn.hutool.core.lang.ObjectId,快捷創建方法為:

//生成類似:5b9e306a4df4f8c54a39fb0c
String id = ObjectId.next();

//方法2:從Hutool-4.1.14開始提供
String id2 = IdUtil.objectId();

(3)Snowflake

分布式系統中,有一些需要使用全局唯一ID的場景,有些時候我們希望能使用一種簡單一些的ID,并且希望ID能夠按照時間有序生成。Twitter的Snowflake 算法就是這種生成器。

使用方法如下:

//參數1為終端ID
//參數2為數據中心ID
Snowflake snowflake = IdUtil.getSnowflake(1, 1);
long id = snowflake.nextId();

//簡單使用
long id = IdUtil.getSnowflakeNextId();
String id = snowflake.getSnowflakeNextIdStr();

6.RandomUtil

RandomUtil主要針對JDK中Random對象做封裝,嚴格來說,Java產生的隨機數都是偽隨機數,因此Hutool封裝后產生的隨機結果也是偽隨機結果。不過這種隨機結果對于大多數情況已經夠用。

RandomUtil.randomInt 獲得指定范圍內的隨機數 例如我們想產生一個[10, 100)的隨機數,則:

int c = RandomUtil.randomInt(10, 100);

RandomUtil.randomBytes 隨機bytes,一般用于密碼或者salt生成

byte[] c = RandomUtil.randomBytes(10);

RandomUtil.randomEle 隨機獲得列表中的元素。

RandomUtil.randomEleSet 隨機獲得列表中的一定量的不重復元素,返回Set

Set<Integer> set = RandomUtil.randomEleSet(CollUtil.newArrayList(1, 2, 3, 4, 5, 6), 2);

7.BeanUtil

通常Java中對Bean的定義是包含setXXX和getXXX方法的對象,在Hutool中,采取一種簡單的判定Bean的方法:是否存在只有一個參數的setXXX方法。

(1)判斷是否為Bean對象

BeanUtil.isBean方法根據是否存在只有一個參數的setXXX方法或者public類型的字段來判定是否是一個Bean對象。這樣的判定方法主要目的是保證至少有一個setXXX方法用于屬性注入。

boolean isBean = BeanUtil.isBean(HashMap.class);//false

(2)Bean轉為Map

BeanUtil.beanToMap方法則是將一個Bean對象轉為Map對象。

SubPerson person = new SubPerson();
person.setAge(14);
person.setOpenid("11213232");
person.setName("測試A11");
person.setSubName("sub名字");

Map<String, Object> map = BeanUtil.beanToMap(person);

(3)Bean轉Bean

Bean之間的轉換主要是相同屬性的復制,因此方法名為copyProperties,此方法支持Bean和Map之間的字段復制。

BeanUtil.copyProperties方法同樣提供一個CopyOptions參數用于自定義屬性復制。

SubPerson p1 = new SubPerson();
p1.setSlow(true);
p1.setName("測試");
p1.setSubName("sub測試");

Map<String, Object> map = MapUtil.newHashMap();
BeanUtil.copyProperties(p1, map);

8.JSONUtil

JSONUtil是針對JSONObject和JSONArray的靜態快捷方法集合。

(1)JSON字符串創建

JSONUtil.toJsonStr可以將任意對象(Bean、Map、集合等)直接轉換為JSON字符串。如果對象是有序的Map等對象,則轉換后的JSON字符串也是有序的。

SortedMap<Object, Object> sortedMap = new TreeMap<Object, Object>() {
    private static final long serialVersionUID = 1L;
    {
    put("attributes", "a");
    put("b", "b");
    put("c", "c");
}};

JSONUtil.toJsonStr(sortedMap);

結果:

{"attributes":"a","b":"b","c":"c"}

如果我們想獲得格式化后的JSON,則:

JSONUtil.toJsonPrettyStr(sortedMap);

結果:

{
    "attributes": "a",
    "b": "b",
    "c": "c"
}

(2)JSON字符串解析

String html = "{\"name\":\"Something must have been changed since you leave\"}";
JSONObject jsonObject = JSONUtil.parseObj(html);
jsonObject.getStr("name");

(3)XML字符串轉換為JSON

String s = "<sfzh>123</sfzh><sfz>456</sfz><name>aa</name><gender>1</gender>";
JSONObject json = JSONUtil.parseFromXml(s);

json.get("sfzh");
json.get("name");

(4)JSON轉換為XML

final JSONObject put = JSONUtil.createObj()
        .set("aaa", "你好")
        .set("鍵2", "test");

// <aaa>你好</aaa><鍵2>test</鍵2>
final String s = JSONUtil.toXmlStr(put);

(5)JSON轉Bean

我們先定義兩個較為復雜的Bean(包含泛型)

@Data
public class ADT {
    private List<String> BookingCode;
}

@Data
public class Price {
    private List<List<ADT>> ADT;
}
String json = "{\"ADT\":[[{\"BookingCode\":[\"N\",\"N\"]}]]}";

Price price = JSONUtil.toBean(json, Price.class);
price.getADT().get(0).get(0).getBookingCode().get(0);

當然,上面只是列舉了Hutool的一部分功能,更多功能可以去它官網:https://www.hutool.cn查看。

總體來說,Hutool目前封裝的這些工具類,確實非常好用,可以節省我們重復造輪子的時間,少寫很多代碼,幫助我們提升開發效率。

責任編輯:姜華 來源: 蘇三說技術
相關推薦

2024-06-19 10:01:50

2019-06-26 10:10:44

Linux終端命令

2013-04-18 09:43:34

碼農網站網站設計

2021-04-21 10:36:47

StringBuildJava8StringJoine

2023-10-26 07:29:06

mongodb十六進制ID

2012-03-27 09:20:57

Java

2020-11-18 09:37:07

程序員技術996

2021-11-30 08:44:29

SpringRouter Func函數式接口

2023-01-28 09:38:48

接口SpringMVC

2025-04-03 08:00:00

灰度發布Java開發

2025-10-28 01:45:00

setTimeouAPI日志

2022-05-05 07:25:03

Supervisor監控Python

2024-01-09 08:20:05

2024-03-21 10:39:24

CIOAI

2021-05-07 13:39:20

Python工具代碼

2020-08-10 14:30:09

BeanUtils工具類MapStruct

2020-08-10 10:40:03

工具類MapStructJava

2024-10-28 10:55:50

Jedis組件客戶端

2020-04-20 10:10:52

Python數據可視化數據科學

2023-02-27 08:53:54

JedislettuceRedis
點贊
收藏

51CTO技術棧公眾號

日韩精品在线一区| 亚洲黄色av一区| 91精品久久久久久久久久| 污软件在线观看| 国产精品中文字幕制服诱惑| 狠狠综合久久av一区二区小说| 精品一区二区三区国产| 五月婷婷丁香在线| 狠狠爱www人成狠狠爱综合网| 日韩精品在线视频| 一个人看的视频www| 欧美www.| 香蕉久久一区二区不卡无毒影院| 色一情一乱一伦一区二区三欧美| www.亚洲天堂.com| 青青草伊人久久| 性欧美视频videos6一9| 国产精品精品软件男同| 先锋影音国产精品| 日韩一区二区精品在线观看| 日韩免费毛片视频| 国产丝袜在线观看视频| 国产精品久久一级| 欧美日韩一区二区三区在线观看免 | 日韩成人精品视频在线观看| 欧美成人黑人| 亚洲444eee在线观看| www亚洲国产| 国产中文字幕在线| 99v久久综合狠狠综合久久| 91久久久精品| 中文字幕在线播出| 性8sex亚洲区入口| 777午夜精品福利在线观看| 国产精品九九九九九九| 香蕉精品视频在线观看| 亚洲一区av在线播放| 性囗交免费视频观看| 欧美久久亚洲| 欧美一区二区精品| 国产一区二区在线观看免费视频| 久久精品女人天堂av免费观看| 午夜久久久久久久久久一区二区| 天堂а√在线中文在线| 含羞草www国产在线视频| 国产精品毛片无遮挡高清| 日本午夜精品电影| 二区三区在线| 国产欧美精品国产国产专区 | 日韩高清一二三区| 欧美日韩中出| 日韩一区二区三区在线| 无套白嫩进入乌克兰美女| 99久热在线精品视频观看| 欧美乱妇一区二区三区不卡视频| 中文字幕一区二区三区四区在线视频| 国产伦精品一区二区三区视频金莲| 黄色一区二区在线| 午夜精品久久久内射近拍高清 | 日本中文字幕伦在线观看| 国产欧美日韩视频一区二区| 日韩精品欧美在线| av资源种子在线观看| 国产精品美女久久福利网站 | 国产欧美午夜| 啪一啪鲁一鲁2019在线视频| 波多野结衣啪啪| 免费观看日韩电影| 成人亚洲综合色就1024| www.日日夜夜| 99热在这里有精品免费| 欧美日韩一区在线视频| 成人高清在线| 亚洲欧洲综合另类| 久久国产精品视频在线观看| 成人私拍视频| 91精品国产综合久久蜜臀| 色婷婷狠狠18禁久久| 美国成人xxx| 国产亚洲人成a一在线v站| 天海翼在线视频| 亚洲国产二区| 国产精品国产福利国产秒拍| a级片免费视频| gogogo免费视频观看亚洲一| 欧美一区2区三区4区公司二百| 自拍视频在线免费观看| 亚洲综合成人在线| 日本激情视频在线| 欧美成人精品午夜一区二区| 亚洲另类xxxx| 国产成人无码aa精品一区| 亚洲欧美高清| 成人xxxx视频| 免费在线视频一级不卡| 亚洲少妇中出一区| 人妻少妇被粗大爽9797pw| 95精品视频| 亚洲免费视频一区二区| 99鲁鲁精品一区二区三区| 一本一本久久| 91九色综合久久| 深夜福利视频在线免费观看| 中文字幕中文在线不卡住| 91av资源网| 国产精品3区| 亚洲欧美第一页| 久久久久99精品成人片毛片| 日韩av在线播放中文字幕| 国产精品免费一区二区三区在线观看| 国产h视频在线观看| 性做久久久久久久久| 亚洲高清视频免费| 国产免费av一区二区三区| 欧美大尺度激情区在线播放 | 蜜臀久久久久久久| 久久久久成人精品免费播放动漫| free性欧美hd另类精品| 精品视频在线视频| a毛片毛片av永久免费| 亚洲乱亚洲高清| 2019国产精品视频| 黄色网址在线免费| 欧美日韩一本到| aaaaa一级片| 影音先锋国产精品| 成人资源视频网站免费| 成人午夜在线影视| 欧美色成人综合| 成人性生交大片免费看无遮挡aⅴ| 亚洲视频www| 国产一区免费在线观看| 手机av免费在线| 91精品免费观看| 国产67194| 极品少妇一区二区三区精品视频 | 亚洲美女视频在线免费观看| 亚洲一区二区三| 日本三级视频在线观看| 欧美日韩国产天堂| 国精品人伦一区二区三区蜜桃| 日本怡春院一区二区| 欧美日韩精品不卡| 日韩欧美看国产| 亚洲午夜女主播在线直播| 波多野结衣激情视频| 国产校园另类小说区| 少妇性饥渴无码a区免费| 亚洲a级精品| 日本三级韩国三级久久| 男人的天堂在线免费视频| 日本乱码高清不卡字幕| 美女脱光内衣内裤| 日本不卡视频在线| 亚洲欧美99| 成人短视频软件网站大全app| www.久久色.com| 国产欧美日韩成人| 一区二区三区在线视频免费| 日本一区二区在线观看视频| 亚洲黄色视屏| 欧美二区三区| 全球中文成人在线| 欧美精品一区二区免费| 黄色一级大片在线免费看国产一 | 久久伊人亚洲| 韩国一区二区电影| 日韩大胆视频| 在线免费观看日本欧美| 韩国一级黄色录像| 国产成人免费在线| 日本福利视频在线| 欧美一级精品| 18成人在线| 麻豆mv在线看| 一区二区三区www| 国产色视频在线| 亚洲成av人片| 久久婷婷五月综合| 久久99最新地址| 久草视频国产在线| 精品国产一区二区三区| 亚洲最大的网站| 热色播在线视频| 日韩中文娱乐网| 人妻一区二区三区| 欧美午夜寂寞影院| 久久精品99国产精| 国产欧美一区二区在线| 三级黄色片免费看| 涩涩视频网站在线观看| 欧美一区二区三区小说| 久久久久久久黄色片| 国产精品国产自产拍在线| 9191在线视频| 视频一区视频二区中文| 欧美xxxx黑人又粗又长密月| 精品中文在线| 日本成人免费在线| 在线中文字幕视频观看| 国产一区二区久久精品| 男人天堂一区二区| 欧美人妇做爰xxxⅹ性高电影| 日产精品久久久久| 久久亚洲精选| 欧美一区二区视频17c | 国产精品久久久久久久免费大片| 欧美va视频| 久久免费精品日本久久中文字幕| 3d成人动漫在线| 日韩精品视频在线免费观看| av在线资源观看| 欧美日韩在线精品一区二区三区激情 | 精品国产制服丝袜高跟| 国产伦精品一区二区三区视频我| 亚洲精品乱码久久久久久久久| 日韩av中文字幕第一页| 成人av婷婷| 亚洲va男人天堂| 韩国精品视频在线观看 | 免费在线成人| 蜜臀av色欲a片无码精品一区| 郴州新闻综合频道在线直播| 国产精品久久亚洲| 国产精品成人**免费视频| 国产精品欧美激情| 亚洲欧洲美洲av| 91国内精品久久| 色三级在线观看| 国产亚洲欧洲黄色| 欧美91精品久久久久国产性生爱| 国产在线视视频有精品| 一夜七次郎国产精品亚洲| 精品国产av鲁一鲁一区| 在线播放91灌醉迷j高跟美女| 波多野结衣午夜| 欧洲激情一区二区| 亚洲无码精品一区二区三区| 色悠悠亚洲一区二区| 国语对白永久免费| 色综合欧美在线| 青青青国产在线 | 中文文字幕一区二区三三| 日韩欧美在线一区| 久久青青草原亚洲av无码麻豆 | 中文字幕精品一区二| 91九色02白丝porn| 一级片中文字幕| 亚洲国产综合色| 波多野结衣喷潮| 欧美激情综合网| 内射毛片内射国产夫妻| 中文字幕精品一区二区三区精品| 欧美黄色一级生活片| 国产午夜亚洲精品理论片色戒| 精品人伦一区二区三电影| 日本一区二区三区久久久久久久久不| 9.1成人看片免费版| 91啪九色porn原创视频在线观看| 手机av免费看| 国产免费久久精品| 小泽玛利亚一区| 一区二区三区欧美日韩| 精国产品一区二区三区a片| 亚洲线精品一区二区三区八戒| 久艹视频在线观看| 亚洲高清免费一级二级三级| 日韩 欧美 综合| 色8久久精品久久久久久蜜| 特级西西444www大胆免费看| 7777精品伊人久久久大香线蕉完整版 | 色猫猫国产区一区二在线视频| 精品处破女学生| 日韩欧美在线免费| 国产欧美久久久| 日韩精品视频中文在线观看| 国产片在线观看| 丝袜一区二区三区| 免费网站在线观看人| 欧美一级视频在线观看| 色综合.com| 亚洲一区二区三区香蕉| 成人精品视频在线观看| 国产乱码精品一区二区三区卡| 亚洲美女15p| 热re99久久精品国99热蜜月| 欧美日韩一二三四| 国产高清不卡无码视频| 国产亚洲高清视频| 国产免费黄色av| 久久久www| 91看片破解版| 国产精品亚洲一区二区三区在线| 特大黑人巨人吊xxxx| 欧美激情在线观看视频免费| 欧美成人片在线观看| 色悠悠久久综合| 亚洲成人第一区| 日韩一区二区三区视频| 国产一区二区三区福利| 精品国产一区av| 亚洲黄色中文字幕| www.久久草| 99久久婷婷这里只有精品 | 免费视频一区二区| 男人女人黄一级| 成人黄色一级视频| 国产精品久久久久无码av色戒| 国产精品网站导航| 欧美性猛交xxxxx少妇| 狠狠综合久久av一区二区小说| 国产精品嫩草影院精东| 亚洲欧美第一页| 国产激情在线播放| 91中文在线观看| 日韩av大片| 先锋影音亚洲资源| 综合一区av| 中文字幕资源在线观看| 国产三级一区二区| 日韩影院一区二区| 亚洲一区电影777| 91久久久久久久久久久久| 亚洲片在线资源| 成人福利电影| 成人欧美一区二区| 中文无码久久精品| 国产无遮挡猛进猛出免费软件| 久久九九99视频| 天天综合天天做| 色中色一区二区| 男男电影完整版在线观看| 97超碰蝌蚪网人人做人人爽| 岛国成人av| 国产精品视频一二三四区| 激情文学综合插| 伊人久久一区二区三区| 亚洲一区日韩精品中文字幕| 亚洲第一成人av| 久久人人爽人人爽爽久久| 日本久久二区| 精品乱子伦一区二区三区| 国产综合精品一区| 国产性猛交96| 亚洲午夜电影在线| 色婷婷在线视频| 中文字幕亚洲一区| 第84页国产精品| 日韩av在线电影观看| 日韩影院免费视频| 精品熟妇无码av免费久久| 欧美日韩一区二区三区高清 | 久久夜色电影| 青青草原网站在线观看| 国产乱码精品一区二区三区av | 亚洲欧美高清在线| 亚洲免费观看高清完整版在线观看熊| 欧美一级黄视频| 日韩中文字幕网站| 丁香花在线观看完整版电影| 亚洲自拍在线观看| 婷婷综合社区| 欧美视频国产视频| 一区二区三区四区国产精品| 农村少妇久久久久久久| 欧美一级大胆视频| 成人情趣视频网站| 性生活一级大片| 久久精品一区二区三区av| 国产精品黄色大片| 国产亚洲美女精品久久久| 日韩精品一级毛片在线播放| 中文视频一区视频二区视频三区 | 国产日韩中文在线| 日韩一区自拍| 无人在线观看的免费高清视频| 国产精品一区免费视频| 日产精品久久久久| 在线观看成人黄色| 日韩一区二区三免费高清在线观看| xxxxxx在线观看| 91麻豆国产精品久久| 影音先锋国产资源| 日韩视频亚洲视频| 欧美成人基地| 涩涩网站在线看| 国产精品欧美一级免费| 亚洲美女性生活| 国产精品jvid在线观看蜜臀| 五月天激情综合网| 最新中文字幕视频| 欧美精品自拍偷拍| www在线观看播放免费视频日本| 久久99精品久久久水蜜桃| 久久国产精品久久久久久电车| 日本福利片在线观看| 亚洲精品网站在线播放gif| 精品国产三级| 日本成人中文字幕在线| 中文字幕日韩精品一区|