精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

在线精品亚洲一区二区| 久久精品人人爽| 国产精品后入内射日本在线观看| 午夜在线视频观看| 免费人成精品欧美精品| 久久激情五月丁香伊人| 99免费观看视频| 偷拍中文亚洲欧美动漫| 亚洲天堂网中文字| 国产精品免费在线播放| 亚洲国产成人无码av在线| 日韩成人免费| 亚洲精品一区二区三区四区高清| 69堂免费视频| av网站在线看| 国产三级三级三级精品8ⅰ区| 91久久久久久久久久| 日韩高清免费av| 婷婷综合激情| 亚洲人成网站999久久久综合| 天堂网成人在线| 日韩三区免费| 亚洲v中文字幕| 一区二区三区欧美成人| 手机亚洲第一页| 丁香六月久久综合狠狠色| 国产精品日韩av| 日韩黄色a级片| 在线国产一区| 在线国产精品视频| 久久久久久久无码| 成人综合日日夜夜| 欧美丝袜自拍制服另类| 国产乱子伦农村叉叉叉| av网站在线看| 中文字幕一区二区三区在线观看| 久久国产一区二区| 亚洲精品无amm毛片| 国内精品不卡在线| 国产精品久久久久久中文字| 狠狠人妻久久久久久综合| 在线日韩av| 欧美国产日韩免费| 91麻豆免费视频网站| 亚洲色图美女| 日韩精品视频免费| 精品人妻一区二区免费视频| 久久影院一区二区三区| 欧美精三区欧美精三区| 人妻精品无码一区二区三区| 不卡av免费观看| 一区二区三区欧美亚洲| 成人污网站在线观看| 国产原创视频在线观看| 国产精品久久久久久久久免费丝袜 | 欧美亚洲一区| 欧美在线xxx| 亚洲午夜18毛片在线看| 免费亚洲婷婷| 日本精品久久久久影院| 无码人妻久久一区二区三区不卡| 免费在线观看成人av| 日本一区二区三区在线播放| 国产成人在线视频观看| 久久久成人网| 国产精品久久久久免费a∨大胸| 国产精品51麻豆cm传媒| 麻豆精品一区二区av白丝在线| 国产精品欧美激情| 国产精品久久久久精| 韩国视频一区二区| 91久久大香伊蕉在人线| 人妻少妇精品无码专区| 成人97人人超碰人人99| 久久亚洲精品欧美| 精品亚洲成a人片在线观看| 亚洲国产精品ⅴa在线观看| 视频在线精品一区| 成人短视频在线| 亚洲最新在线观看| 国产精品沙发午睡系列| 国产一区二区精品调教| 欧美一区二视频| 亚洲一区二区三区四区av| 四虎5151久久欧美毛片| 国产一区二区三区在线看| 99热在线观看精品| 午夜欧美精品| 国产成人av在线播放| 亚洲一区二区三区网站| 成人免费视频视频| 欧美三日本三级少妇三99| 色视频在线免费观看| 亚洲在线免费播放| 国产免费视频传媒| 精品视频一区二区三区在线观看| 亚洲丁香婷深爱综合| 一级在线观看视频| 国产精品videossex久久发布| 欧美性受xxx| 97超视频在线观看| www.av亚洲| 中文字幕一区二区三区四区五区| 波多野结衣在线高清| 91久久国产综合久久| 亚洲成人福利视频| 黑丝美女一区二区| 欧美激情二区三区| 亚洲一级特黄毛片| xf在线a精品一区二区视频网站| 亚洲欧洲一区二区在线观看| 黄色成人在线网| 欧美日韩国产综合草草| 亚洲男人在线天堂| 伊人久久大香线蕉综合四虎小说| 欧美一区二区三区免费观看| av网站在线观看免费| 国产欧美精品一区二区色综合| 青青青青在线视频| 四虎国产精品成人免费影视| 亚洲码在线观看| 国产亚洲色婷婷久久99精品| 美女视频黄 久久| 国产乱码精品一区二区三区不卡| 黄色网页在线免费看| 色天天综合色天天久久| 一本加勒比波多野结衣| 欧美成人嫩草网站| 国产欧美一区二区三区视频 | 国产视频一区二| 一区二区三区视频免费| 精品美女久久久久| 成人性生交大片| 91传媒免费视频| 日韩欧国产精品一区综合无码| 亚洲人av在线影院| 欧美特黄aaaaaa| 91麻豆精品一区二区三区| 欧美日韩福利在线| 2021年精品国产福利在线| www.欧美精品一二三区| 中文字幕 日韩有码| 日本一区二区三区视频视频| 18禁男女爽爽爽午夜网站免费| 久久99国产精品久久99大师| 久久久久久久久久久91| 精品久久久久久亚洲综合网站| 亚洲四区在线观看| 永久免费黄色片| 中文字幕一区二区av| 91在线免费看网站| 黄色av电影在线观看| 欧美另类变人与禽xxxxx| 亚洲精品国产精品国自| 人人爽香蕉精品| 性欧美大战久久久久久久免费观看| 久久毛片亚洲| 中文字幕无线精品亚洲乱码一区| 亚洲精品无码久久久久| 国产精品久久久久久久岛一牛影视 | 日韩欧美国产精品一区| 九九热国产精品视频| 国产suv精品一区二区883| 男人添女人下部视频免费| 日本少妇精品亚洲第一区| 欧美高跟鞋交xxxxxhd| 欧美三级韩国三级日本三斤在线观看| 久久99久久99| 国产卡一卡二在线| 国内精品视频| 久久久久久久久中文字幕| 天堂网在线资源| 欧美日韩一区二区免费在线观看| 亚洲永久精品ww.7491进入| 视频在线在亚洲| 亚洲第一页在线视频| 午夜免费欧美电影| 国内精品久久久久久久久| 美州a亚洲一视本频v色道| 欧美日韩亚州综合| 黄色在线观看免费| 91婷婷韩国欧美一区二区| 黄色av免费在线播放| 国产精品福利在线观看播放| 高清日韩一区| 影视一区二区三区| 久久影院中文字幕| 五月婷婷深深爱| 欧美挠脚心视频网站| 国产第一页第二页| 国产网站一区二区三区| 一级黄色高清视频| 另类亚洲自拍| 日本a级片在线观看| 香蕉久久精品日日躁夜夜躁| 国产精品一区二区久久精品| 免费影视亚洲| 宅男66日本亚洲欧美视频| 性一交一乱一乱一视频| 欧美亚洲综合久久| 久久久久亚洲av成人片| 国产网站一区二区| 动漫美女无遮挡免费| 日本不卡在线视频| www精品久久| 91精品国产自产在线观看永久∴| 精品一区二区三区免费毛片| 在线免费成人| 国产精品第一页在线| 久久av色综合| 日韩中文字幕视频| 三级毛片在线免费看| 欧美一区二区人人喊爽| 中文字幕 日韩有码| 天天色综合成人网| 亚洲熟女www一区二区三区| 国产欧美日韩久久| 野花社区视频在线观看| 国产美女在线观看一区| 国产精品入口免费软件| 国产欧美日韩综合一区在线播放 | 国产精品久久| 在线观看欧美一区| 奇米亚洲欧美| 精品一卡二卡三卡四卡日本乱码 | 久久成人免费网| 成年人黄色片视频| 精品99视频| 欧美激情亚洲天堂| 欧美 日韩 国产一区二区在线视频| 手机看片福利永久国产日韩| 同性恋视频一区| 精品国产乱码久久久久久郑州公司 | 超碰97人人在线| 亚洲精品无播放器在线播放| 国产精品久久久久999| 日本免费久久| 日本视频久久久| 人人草在线视频| 91精品国产91久久久久| 97人人爽人人澡人人精品| 久久久久久美女| 国产乱码在线| 久久久亚洲欧洲日产国码aⅴ| 18视频在线观看| 欧美激情一级二级| 久久久久黄久久免费漫画| 欧美国产一区二区三区| 人人超在线公开视频| 欧美大片在线免费观看| 韩国成人免费视频| 久久久久久久久久久久av| 国产美女高潮在线观看| 欧美综合一区第一页| 欧美电影免费观看网站| 国产精品jizz在线观看麻豆| 日韩高清成人| 国产欧美精品久久久| 国产麻豆精品| 成人免费看片网站| 懂色av一区二区| 蜜桃免费一区二区三区| 国产一区二区三区不卡视频网站| 日韩电影大全在线观看| 色天天综合网| 国产树林野战在线播放| 激情另类综合| 亚洲熟妇av一区二区三区| 日韩精品五月天| 五月天激情播播| 成人免费三级在线| 少妇精品一区二区三区| 国产精品毛片高清在线完整版| 97在线观看免费高| 亚洲成a人在线观看| 欧美在线观看不卡| 777午夜精品免费视频| 性一交一乱一乱一视频| 亚洲人成网站在线播| 麻豆视频在线免费观看| 久久人91精品久久久久久不卡| 都市激情亚洲综合| 成人免费淫片视频软件| 国内精品国产成人国产三级粉色| 欧美日韩在线精品| 中文字幕免费一区二区三区| 男人日女人bb视频| 精品一区二区在线播放| 一边摸一边做爽的视频17国产 | 亚洲不卡在线播放| 亚洲国产成人porn| 成年人视频免费| 日韩欧美高清一区| 国产专区在线| 欧美日韩成人精品| 日产精品一区| 成人欧美一区二区三区视频 | 成人一区在线看| 婷婷综合在线视频| 午夜精品久久久久久久久| 在线观看国产精品视频| 亚洲精品一区二区三区四区高清| av片在线免费观看| 亚州欧美日韩中文视频| 亚洲日本中文| 日本一区视频在线| 激情久久婷婷| 在线免费看污网站| 久久精品水蜜桃av综合天堂| 精品无码人妻一区二区三| 欧美日韩高清一区| 日本电影一区二区在线观看| 久久99精品视频一区97| 国产精品亚洲成在人线| 久久精品一区二区三区不卡免费视频| 羞羞色午夜精品一区二区三区| 久久国产色av免费观看| www.一区二区| 久草视频中文在线| 在线观看91av| av电影在线观看网址| 日本老师69xxx| 农村少妇一区二区三区四区五区 | 午夜三级在线观看| 在线精品亚洲一区二区不卡| 午夜国产在线观看| 高清欧美电影在线| 亚洲精品国产九九九| 一区视频二区视频| 免费在线观看视频一区| 亚洲a v网站| 欧美午夜影院在线视频| 熟妇人妻一区二区三区四区| 欧美精品福利在线| 中文字幕视频精品一区二区三区| 黄瓜视频免费观看在线观看www | 星空大象在线观看免费播放| 亚洲男人都懂的| 99久久亚洲精品日本无码| 俺去了亚洲欧美日韩| 免费日韩成人| 夜夜爽99久久国产综合精品女不卡 | 欧美性感美女一区二区| 一区二区在线播放视频| 国产欧美一区二区三区网站 | 樱花草涩涩www在线播放| 国产女主播一区二区| 亚洲精品四区| 97人妻天天摸天天爽天天| 狠狠干狠狠久久| 欧美午夜黄色| 国产精品va在线| 日韩精品一卡| 午夜一区二区视频| 综合色中文字幕| 亚洲精品一区二区口爆| 高清欧美电影在线| 亚洲视频分类| 91n.com在线观看| 1区2区3区精品视频| 99精品在线看| 国内成人精品视频| 免费欧美一区| 911福利视频| 一个色妞综合视频在线观看| 日韩一卡二卡在线| 国产99久久久欧美黑人| 久久综合成人| 爱爱爱爱免费视频| 亚洲精品高清在线| 天堂在线视频免费观看| 国产精品精品一区二区三区午夜版| 国产精品国产三级国产在线观看| 日本少妇一区二区三区| 午夜精品123| av免费在线一区二区三区| 91精品综合久久久久久五月天| 亚洲视频一区| 精品成人av一区二区三区| 欧美久久久久中文字幕| 高清精品在线| 亚洲精蜜桃久在线| 国产福利电影一区二区三区| 亚洲日本韩国在线| 色婷婷综合成人av| 大奶在线精品| 爱情岛论坛vip永久入口| 亚洲欧美另类小说| 日韩精品123| 亚洲精品免费网站| 亚洲女优在线| 欧美 日韩 国产 一区二区三区| 亚洲国产欧美在线成人app| 国产69精品久久久久9999人| 日本人体一区二区| 国产精品国产三级国产有无不卡 | 97最新国自产拍视频在线完整在线看| 国产精品久久久久久久久久免费| 亚洲理论电影网| 美国黄色a级片|