日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!|建议收藏!!!...

發(fā)布時(shí)間:2025/3/11 编程问答 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!|建议收藏!!!... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

世界上只有一種英雄主義,就是看清生活的真相之后依然熱愛生活。

對(duì)于 Lombok 我相信大部分人都不陌生,但對(duì)于它的實(shí)現(xiàn)原理以及缺點(diǎn)卻鮮為人知,而本文將會(huì)從 Lombok 的原理出發(fā),手?jǐn)]一個(gè)簡(jiǎn)易版的 Lombok,讓你理解這個(gè)熱門技術(shù)背后的執(zhí)行原理,以及它的優(yōu)缺點(diǎn)。

簡(jiǎn)介

在講原理之前,我們先來(lái)復(fù)習(xí)一下 Lombok (老司機(jī)可直接跳過(guò)本段)。

Lombok 是一個(gè)非常熱門的開源項(xiàng)目 (https://github.com/rzwitserloot/lombok),使用它可以有效的解決 Java 工程中那些繁瑣又重復(fù)代碼,例如 Setter、Getter、toString、equals、hashCode 以及非空判斷等,都可以使用 Lombok 有效的解決。

使用

1.添加 Lombok 插件

在 IDE 中必須安裝 Lombok 插件,才能正常調(diào)用被 Lombok 修飾的代碼,以 Idea 為例,添加的步驟如下:

  • 點(diǎn)擊 File > Settings > Plugins 進(jìn)入插件管理頁(yè)面

  • 點(diǎn)擊 Browse repositories...

  • 搜索 Lombok Plugin

  • 點(diǎn)擊 Install plugin 安裝插件

  • 重啟 IntelliJ IDEA

安裝完成,如下圖所示:

2.添加 Lombok 庫(kù)

接下來(lái)我們需要在項(xiàng)目中添加最新的 Lombok 庫(kù),如果是 Maven 項(xiàng)目,直接在 pom.xml 中添加如下配置:

<dependencies><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version><scope>provided</scope></dependency> </dependencies>

如果是 JDK 9+ 可使用模塊的方式添加,配置如下:

<annotationProcessorPaths><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></path> </annotationProcessorPaths>

3.使用 Lombok

接下來(lái)到了前半部分中最重要的 Lombok 使用環(huán)節(jié)了,我們先來(lái)看在沒有使用 Lombok 之前的代碼:

public class Person {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;} }

這是使用 Lombok 之后的代碼:

@Getter @Setter public class Person {private Integer id;private String name; }

可以看出在 Lombok 之后,用一個(gè)注解就搞定了之前所有 Getter/Setter 的代碼,讓代碼瞬間優(yōu)雅了很多

Lombok 所有注解如下:

  • val:用在局部變量前面,相當(dāng)于將變量聲明為 final;

  • @NonNull:給方法參數(shù)增加這個(gè)注解會(huì)自動(dòng)在方法內(nèi)對(duì)該參數(shù)進(jìn)行是否為空的校驗(yàn),如果為空,則拋出 NPE(NullPointerException);

  • @Cleanup:自動(dòng)管理資源,用在局部變量之前,在當(dāng)前變量范圍內(nèi)即將執(zhí)行完畢退出之前會(huì)自動(dòng)清理資源,自動(dòng)生成 try-finally 這樣的代碼來(lái)關(guān)閉流;

  • @Getter/@Setter:用在屬性上,再也不用自己手寫 setter 和 getter 方法了,還可以指定訪問(wèn)范圍;

  • @ToString:用在類上可以自動(dòng)覆寫 toString 方法,當(dāng)然還可以加其他參數(shù),例如 @ToString(exclude=”id”) 排除 id 屬性,或者 @ToString(callSuper=true, includeFieldNames=true) 調(diào)用父類的 toString 方法,包含所有屬性;

  • @EqualsAndHashCode:用在類上自動(dòng)生成 equals 方法和 hashCode 方法;

  • @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor:用在類上,自動(dòng)生成無(wú)參構(gòu)造和使用所有參數(shù)的構(gòu)造函數(shù)以及把所有 @NonNull 屬性作為參數(shù)的構(gòu)造函數(shù),如果指定 staticName="of" 參數(shù),同時(shí)還會(huì)生成一個(gè)返回類對(duì)象的靜態(tài)工廠方法,比使用構(gòu)造函數(shù)方便很多;

  • @Data:注解在類上,相當(dāng)于同時(shí)使用了 @ToString、@EqualsAndHashCode、@Getter、@Setter 和 @RequiredArgsConstrutor 這些注解,對(duì)于 POJO 類十分有用;

  • @Value:用在類上,是 @Data 的不可變形式,相當(dāng)于為屬性添加 final 聲明,只提供 getter 方法,而不提供 setter 方法;

  • @Builder:用在類、構(gòu)造器、方法上,為你提供復(fù)雜的 builder APIs,讓你可以像如下方式一樣調(diào)用Person.builder().name("xxx").city("xxx").build();

  • @SneakyThrows:自動(dòng)拋受檢異常,而無(wú)需顯式在方法上使用 throws 語(yǔ)句;

  • @Synchronized:用在方法上,將方法聲明為同步的,并自動(dòng)加鎖,而鎖對(duì)象是一個(gè)私有的屬性?或LOCK,而 Java 中的 synchronized 關(guān)鍵字鎖對(duì)象是 this,鎖在 this 或者自己的類對(duì)象上存在副作用,就是你不能阻止非受控代碼去鎖 this 或者類對(duì)象,這可能會(huì)導(dǎo)致競(jìng)爭(zhēng)條件或者其它線程錯(cuò)誤;

  • @Getter(lazy=true):可以替代經(jīng)典的 Double Check Lock 樣板代碼;

  • @Log:根據(jù)不同的注解生成不同類型的 log 對(duì)象,但是實(shí)例名稱都是 log,有六種可選實(shí)現(xiàn)類

    • @CommonsLog Creates log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);

    • @Log Creates log = java.util.logging.Logger.getLogger(LogExample.class.getName());

    • @Log4j Creates log = org.apache.log4j.Logger.getLogger(LogExample.class);

    • @Log4j2 Creates log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);

    • @Slf4j Creates log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

    • @XSlf4j Creates log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

它們的具體使用如下:

① val 使用

val sets = new HashSet<String>(); // 相當(dāng)于 final Set<String> sets = new HashSet<>();

② NonNull 使用

public void notNullExample(@NonNull String string) {string.length(); } // 相當(dāng)于 public void notNullExample(String string) {if (string != null) {string.length();} else {throw new NullPointerException("null");} }

③ Cleanup 使用

public static void main(String[] args) {try {@Cleanup InputStream inputStream = new FileInputStream(args[0]);} catch (FileNotFoundException e) {e.printStackTrace();}// 相當(dāng)于InputStream inputStream = null;try {inputStream = new FileInputStream(args[0]);} catch (FileNotFoundException e) {e.printStackTrace();} finally {if (inputStream != null) {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}} }

④ Getter/Setter 使用

@Setter(AccessLevel.PUBLIC) @Getter(AccessLevel.PROTECTED) private int id; private String shap;

⑤ ToString 使用

@ToString(exclude = "id", callSuper = true, includeFieldNames = true) public class LombokDemo {private int id;private String name;private int age;public static void main(String[] args) {// 輸出 LombokDemo(super=LombokDemo@48524010, name=null, age=0)System.out.println(new LombokDemo());} }

⑥ EqualsAndHashCode 使用

@EqualsAndHashCode(exclude = {"id", "shape"}, callSuper = false) public class LombokDemo {private int id;private String shap; }

⑦ NoArgsConstructor、RequiredArgsConstructor、AllArgsConstructor 使用

@NoArgsConstructor @RequiredArgsConstructor(staticName = "of") @AllArgsConstructor public class LombokDemo {@NonNullprivate int id;@NonNullprivate String shap;private int age;public static void main(String[] args) {new LombokDemo(1, "Java");// 使用靜態(tài)工廠方法LombokDemo.of(2, "Java");// 無(wú)參構(gòu)造new LombokDemo();// 包含所有參數(shù)new LombokDemo(1, "Java", 2);} }

⑧ Builder 使用

@Builder public class BuilderExample {private String name;private int age;@Singularprivate Set<String> occupations;public static void main(String[] args) {BuilderExample test = BuilderExample.builder().age(11).name("Java").build();} }

⑨ SneakyThrows 使用

public class ThrowsTest {@SneakyThrows()public void read() {InputStream inputStream = new FileInputStream("");}@SneakyThrowspublic void write() {throw new UnsupportedEncodingException();}// 相當(dāng)于public void read() throws FileNotFoundException {InputStream inputStream = new FileInputStream("");}public void write() throws UnsupportedEncodingException {throw new UnsupportedEncodingException();} }

⑩ Synchronized 使用

public class SynchronizedDemo {@Synchronizedpublic static void hello() {System.out.println("world");}// 相當(dāng)于private static final Object $LOCK = new Object[0];public static void hello() {synchronized ($LOCK) {System.out.println("world");}} }

??Getter(lazy = true) 使用

public class GetterLazyExample {@Getter(lazy = true)private final double[] cached = expensive();private double[] expensive() {double[] result = new double[1000000];for (int i = 0; i < result.length; i++) {result[i] = Math.asin(i);}return result;} } // 相當(dāng)于 import java.util.concurrent.atomic.AtomicReference; public class GetterLazyExample {private final AtomicReference<java.lang.Object> cached = new AtomicReference<>();public double[] getCached() {java.lang.Object value = this.cached.get();if (value == null) {synchronized (this.cached) {value = this.cached.get();if (value == null) {final double[] actualValue = expensive();value = actualValue == null ? this.cached : actualValue;this.cached.set(value);}}}return (double[]) (value == this.cached ? null : value);}private double[] expensive() {double[] result = new double[1000000];for (int i = 0; i < result.length; i++) {result[i] = Math.asin(i);}return result;} }

原理分析

我們知道 Java 的編譯過(guò)程大致可以分為三個(gè)階段:

  • 解析與填充符號(hào)表

  • 注解處理

  • 分析與字節(jié)碼生成

  • 編譯過(guò)程如下圖所示:而 Lombok 正是利用「注解處理」這一步進(jìn)行實(shí)現(xiàn)的,Lombok 使用的是 JDK 6 實(shí)現(xiàn)的 JSR 269: Pluggable Annotation Processing API (編譯期的注解處理器) ,它是在編譯期時(shí)把 Lombok 的注解代碼,轉(zhuǎn)換為常規(guī)的 Java 方法而實(shí)現(xiàn)優(yōu)雅地編程的。

    這一點(diǎn)可以在程序中得到驗(yàn)證,比如本文剛開始用 @Data?實(shí)現(xiàn)的代碼:


    在我們編譯之后,查看 Person 類的編譯源碼發(fā)現(xiàn),代碼竟然是這樣的:



    可以看出 Person 類在編譯期被注解翻譯器修改成了常規(guī)的 Java 方法,添加 Getter、Setter、equals、hashCode 等方法。

    Lombok 的執(zhí)行流程如下:

    可以看出,在編譯期階段,當(dāng) Java 源碼被抽象成語(yǔ)法樹 (AST) 之后,Lombok 會(huì)根據(jù)自己的注解處理器動(dòng)態(tài)的修改 AST,增加新的代碼 (節(jié)點(diǎn)),在這一切執(zhí)行之后,再通過(guò)分析生成了最終的字節(jié)碼 (.class) 文件,這就是 Lombok 的執(zhí)行原理。

    手?jǐn)]一個(gè) Lombok

    我們實(shí)現(xiàn)一個(gè)簡(jiǎn)易版的 Lombok 自定義一個(gè) Getter 方法,我們的實(shí)現(xiàn)步驟是:

  • 自定義一個(gè)注解標(biāo)簽接口,并實(shí)現(xiàn)一個(gè)自定義的注解處理器;

  • 利用 tools.jar 的 javac api 處理 AST (抽象語(yǔ)法樹)

  • 使用自定義的注解處理器編譯代碼。

  • 這樣就可以實(shí)現(xiàn)一個(gè)簡(jiǎn)易版的 Lombok 了。

    1.定義自定義注解和注解處理器

    首先創(chuàng)建一個(gè) MyGetter.java?自定義一個(gè)注解,代碼如下:

    import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;@Retention(RetentionPolicy.SOURCE) // 注解只在源碼中保留 @Target(ElementType.TYPE) // 用于修飾類 public @interface MyGetter { // 定義 Getter}

    再實(shí)現(xiàn)一個(gè)自定義的注解處理器,代碼如下:

    import com.sun.source.tree.Tree; import com.sun.tools.javac.api.JavacTrees; import com.sun.tools.javac.code.Flags; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.processing.JavacProcessingEnvironment; import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.tree.TreeMaker; import com.sun.tools.javac.tree.TreeTranslator; import com.sun.tools.javac.util.*;import javax.annotation.processing.*; import javax.lang.model.SourceVersion; import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; import javax.tools.Diagnostic; import java.util.Set;@SupportedSourceVersion(SourceVersion.RELEASE_8) @SupportedAnnotationTypes("com.example.lombok.MyGetter") public class MyGetterProcessor extends AbstractProcessor {private Messager messager; // 編譯時(shí)期輸入日志的private JavacTrees javacTrees; // 提供了待處理的抽象語(yǔ)法樹private TreeMaker treeMaker; // 封裝了創(chuàng)建AST節(jié)點(diǎn)的一些方法private Names names; // 提供了創(chuàng)建標(biāo)識(shí)符的方法@Overridepublic synchronized void init(ProcessingEnvironment processingEnv) {super.init(processingEnv);this.messager = processingEnv.getMessager();this.javacTrees = JavacTrees.instance(processingEnv);Context context = ((JavacProcessingEnvironment) processingEnv).getContext();this.treeMaker = TreeMaker.instance(context);this.names = Names.instance(context);}@Overridepublic boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {Set<? extends Element> elementsAnnotatedWith = roundEnv.getElementsAnnotatedWith(MyGetter.class);elementsAnnotatedWith.forEach(e -> {JCTree tree = javacTrees.getTree(e);tree.accept(new TreeTranslator() {@Overridepublic void visitClassDef(JCTree.JCClassDecl jcClassDecl) {List<JCTree.JCVariableDecl> jcVariableDeclList = List.nil();// 在抽象樹中找出所有的變量for (JCTree jcTree : jcClassDecl.defs) {if (jcTree.getKind().equals(Tree.Kind.VARIABLE)) {JCTree.JCVariableDecl jcVariableDecl = (JCTree.JCVariableDecl) jcTree;jcVariableDeclList = jcVariableDeclList.append(jcVariableDecl);}}// 對(duì)于變量進(jìn)行生成方法的操作jcVariableDeclList.forEach(jcVariableDecl -> {messager.printMessage(Diagnostic.Kind.NOTE, jcVariableDecl.getName() + " has been processed");jcClassDecl.defs = jcClassDecl.defs.prepend(makeGetterMethodDecl(jcVariableDecl));});super.visitClassDef(jcClassDecl);}});});return true;}private JCTree.JCMethodDecl makeGetterMethodDecl(JCTree.JCVariableDecl jcVariableDecl) {ListBuffer<JCTree.JCStatement> statements = new ListBuffer<>();// 生成表達(dá)式 例如 this.a = a;JCTree.JCExpressionStatement aThis = makeAssignment(treeMaker.Select(treeMaker.Ident(names.fromString("this")), jcVariableDecl.getName()), treeMaker.Ident(jcVariableDecl.getName()));statements.append(aThis);JCTree.JCBlock block = treeMaker.Block(0, statements.toList());// 生成入?yún)CTree.JCVariableDecl param = treeMaker.VarDef(treeMaker.Modifiers(Flags.PARAMETER),jcVariableDecl.getName(), jcVariableDecl.vartype, null);List<JCTree.JCVariableDecl> parameters = List.of(param);// 生成返回對(duì)象JCTree.JCExpression methodType = treeMaker.Type(new Type.JCVoidType());return treeMaker.MethodDef(treeMaker.Modifiers(Flags.PUBLIC),getNewMethodName(jcVariableDecl.getName()), methodType, List.nil(),parameters, List.nil(), block, null);}private Name getNewMethodName(Name name) {String s = name.toString();return names.fromString("get" + s.substring(0, 1).toUpperCase() + s.substring(1, name.length()));}private JCTree.JCExpressionStatement makeAssignment(JCTree.JCExpression lhs, JCTree.JCExpression rhs) {return treeMaker.Exec(treeMaker.Assign(lhs,rhs));} }

    自定義的注解處理器是我們實(shí)現(xiàn)簡(jiǎn)易版的 Lombok 的重中之重,我們需要繼承 AbstractProcessor?類,重寫它的 init() 和 process() 方法,在 process() 方法中我們先查詢所有的變量,在給變量添加對(duì)應(yīng)的方法。我們使用 TreeMaker 對(duì)象和 Names 來(lái)處理 AST,如上代碼所示。

    當(dāng)這些代碼寫好之后,我們就可以新增一個(gè) Person 類來(lái)試一下我們自定義的 @MyGetter?功能了,代碼如下:

    @MyGetter public class Person {private String name; }

    2.使用自定義的注解處理器編譯代碼

    上面的所有流程執(zhí)行完成之后,我們就可以編譯代碼測(cè)試效果了。首先,我們先進(jìn)入代碼的根目錄,執(zhí)行以下三條命令。

    進(jìn)入的根目錄如下:


    ① 使用 tools.jar 編譯自定義的注解器

    javac -cp $JAVA_HOME/lib/tools.jar MyGetter* -d .

    注意:命令最后面有一個(gè)“.”表示當(dāng)前文件夾。

    ② 使用自定義注解器,編譯 Person 類

    javac -processor com.example.lombok.MyGetterProcessor Person.java

    ③ 查看 Person 源碼

    javap -p Person.class

    源碼文件如下:


    可以看到我們自定義的 getName() 方法已經(jīng)成功生成了,到這里簡(jiǎn)易版的 Lombok 就大功告成了。

    Lombok 優(yōu)缺點(diǎn)

    Lombok 的優(yōu)點(diǎn)很明顯,它可以讓我們寫更少的代碼,節(jié)約了開發(fā)時(shí)間,并且讓代碼看起來(lái)更優(yōu)雅,它的缺點(diǎn)有以下幾個(gè)。

    缺點(diǎn)1:降低了可調(diào)試性

    Lombok 會(huì)幫我們自動(dòng)生成很多代碼,但這些代碼是在編譯期生成的,因此在開發(fā)和調(diào)試階段這些代碼可能是“丟失的”,這就給調(diào)試代碼帶來(lái)了很大的不便。

    缺點(diǎn)2:可能會(huì)有兼容性問(wèn)題

    Lombok 對(duì)于代碼有很強(qiáng)的侵入性,加上現(xiàn)在 JDK 版本升級(jí)比較快,每半年發(fā)布一個(gè)版本,而 Lombok 又屬于第三方項(xiàng)目,并且由開源團(tuán)隊(duì)維護(hù),因此就沒有辦法保證版本的兼容性和迭代的速度,進(jìn)而可能會(huì)產(chǎn)生版本不兼容的情況。

    缺點(diǎn)3:可能會(huì)坑到隊(duì)友

    尤其對(duì)于組人來(lái)的新人可能影響更大,假如這個(gè)之前沒用過(guò) Lombok,當(dāng)他把代碼拉下來(lái)之后,因?yàn)闆]有安裝 Lombok 的插件,在編譯項(xiàng)目時(shí),就會(huì)提示找不到方法等錯(cuò)誤信息,導(dǎo)致項(xiàng)目編譯失敗,進(jìn)而影響了團(tuán)結(jié)成員之間的協(xié)作。

    缺點(diǎn)4:破壞了封裝性

    面向?qū)ο蠓庋b的定義是:通過(guò)訪問(wèn)權(quán)限控制,隱藏內(nèi)部數(shù)據(jù),外部?jī)H能通過(guò)類提供的有限的接口訪問(wèn)和修改內(nèi)部數(shù)據(jù)。

    也就是說(shuō),我們不應(yīng)該無(wú)腦的使用 Lombok 對(duì)外暴露所有字段的 Getter/Setter 方法,因?yàn)橛行┳侄卧谀承┣闆r下是不允許直接修改的,比如購(gòu)物車中的商品數(shù)量,它直接影響了購(gòu)物詳情和總價(jià),因此在修改的時(shí)候應(yīng)該提供統(tǒng)一的方法,進(jìn)行關(guān)聯(lián)修改,而不是給每個(gè)字段添加訪問(wèn)和修改的方法。

    小結(jié)

    本文我們介紹了 Lombok 的使用以及執(zhí)行原理,它是通過(guò) JDK 6 實(shí)現(xiàn)的 JSR 269: Pluggable Annotation Processing API (編譯期的注解處理器) ,在編譯期時(shí)把 Lombok 的注解轉(zhuǎn)換為 Java 的常規(guī)方法的,我們可以通過(guò)繼承 AbstractProcessor 類,重寫它的 init() 和 ?process() 方法,實(shí)現(xiàn)一個(gè)簡(jiǎn)易版的 Lombok。但同時(shí) Lombok 也存在這一些使用上的缺點(diǎn),比如:降低了可調(diào)試性、可能會(huì)有兼容性等問(wèn)題,因此我們?cè)谑褂脮r(shí)要根據(jù)自己的業(yè)務(wù)場(chǎng)景和實(shí)際情況,來(lái)選擇要不要使用 Lombok,以及應(yīng)該如何使用 Lombok。

    最后提醒一句,再好的技術(shù)也不是萬(wàn)金油,就好像再好的鞋子也得適合自己的腳才行!

    感謝閱讀,希望本文對(duì)你能所啟發(fā)。覺得不錯(cuò)的話,分享給需要的朋友,謝謝。

    參考 & 鳴謝

    https://juejin.im/post/5a6eceb8f265da3e467555fe

    https://www.tuicool.com/articles/y6rUz2V

    【END】

    《大廠內(nèi)部資料》Redis 性能優(yōu)化的 13 條軍規(guī)!全網(wǎng)首發(fā)

    因?yàn)槲艺f(shuō):volatile 是輕量級(jí)的 synchronized,面試官讓我回去等通知!

    Java14發(fā)布!Switch竟如此簡(jiǎn)單?Lombok也不需要了?來(lái)用Idea搭建Java14吧!

    關(guān)注下方二維碼,訂閱更多精彩內(nèi)容

    朕已閱?

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!|建议收藏!!!...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    麻豆国产视频下载 | 狠狠色丁香九九婷婷综合五月 | 欧美精品一二 | 国产精品videossex国产高清 | 91在线操 | 97福利在线 | 欧美精品一区二区蜜臀亚洲 | 91麻豆精品国产91久久久久久 | 天堂av网站 | 丁香婷婷激情啪啪 | 99视频久 | 久久久久久国产精品美女 | 久久av黄色 | www免费 | av免费黄色 | 99久久日韩精品免费热麻豆美女 | 国产一区二区三区四区大秀 | 欧美亚洲另类在线视频 | 特级西西444www大胆高清无视频 | 五月婷婷在线视频观看 | 国产99在线播放 | 97免费在线观看 | 美国人与动物xxxx | 久久99久久99精品中文字幕 | 成人免费观看a | 久久av高清 | 五月婷婷av在线 | 中文字幕日韩免费视频 | 97成人资源站 | 久久久久国产成人免费精品免费 | 91av在线免费视频 | 天天插天天狠 | 日韩av成人免费看 | 亚洲精品国产自产拍在线观看 | 久久一区二区免费视频 | 日韩欧美高清免费 | 国产亚洲在线视频 | 久热久草 | 久久人人爽人人爽人人片av软件 | 麻豆传媒在线视频 | 欧美成人999 | 久草国产视频 | 亚洲综合激情 | 福利在线看片 | 毛片网在线播放 | 人人要人人澡人人爽人人dvd | 国产精品一区在线观看 | 九九导航 | 亚洲天堂网视频在线观看 | 日本性动态图 | 亚洲激情影院 | 91在线视频播放 | 国产三级精品三级在线观看 | 国产中文字幕一区二区三区 | 成人av一二三区 | 国产精品美女999 | 337p日本大胆噜噜噜噜 | 亚洲精品自拍视频在线观看 | 中文字幕在线播放第一页 | 国产高清不卡一区二区三区 | 欧美日韩精品网站 | 亚洲va欧美va国产va黑人 | 国产麻豆视频在线观看 | 国产 中文 日韩 欧美 | 久久老司机精品视频 | 久久69av| 日韩在线电影 | 欧美成年人在线观看 | 五月婷香蕉久色在线看 | 不卡的av片| 能在线观看的日韩av | 黄色的网站在线 | 亚洲精品久久久蜜桃 | 亚洲精品在线免费 | 国产经典av | av看片在线 | 欧美了一区在线观看 | 久久久久久久久久久免费视频 | 4438全国亚洲精品观看视频 | 91九色网站| 在线观看视频黄色 | 国产免费观看高清完整版 | 国产97在线观看 | 成人黄色av网站 | 欧美大片大全 | 亚洲国产丝袜在线观看 | 久久久亚洲国产精品麻豆综合天堂 | 欧美在线观看视频一区二区 | 毛片美女网站 | 亚洲91视频 | 欧美精品做受xxx性少妇 | 亚洲www天堂com | 精品欧美日韩 | 高清有码中文字幕 | 欧美a级在线 | 成 人 黄 色视频免费播放 | 日韩电影一区二区在线观看 | 欧美精品一区二区蜜臀亚洲 | 久久都是精品 | av免费福利 | 免费久久网 | 色婷婷国产 | 亚洲视频 中文字幕 | 欧美福利网址 | 久久综合五月天婷婷伊人 | 九九九视频精品 | av高清一区二区三区 | 亚洲精品在线观 | 97自拍超碰 | 美女黄久久 | 精品美女久久久久 | 亚洲综合欧美日韩狠狠色 | 99电影456麻豆 | 国产精品九色 | 日本最新高清不卡中文字幕 | 久草香蕉在线 | 亚洲一级二级 | 九九99 | 中文av网 | 色瓜| 亚洲在线精品 | 一区二区三区国产精品 | 91av视频在线播放 | 精品久久久久久久久久久院品网 | 免费在线观看av网站 | 91亚瑟视频 | 中文字幕在线看视频国产中文版 | 亚洲精品大全 | 国产精品女同一区二区三区久久夜 | 国产午夜精品免费一区二区三区视频 | 乱男乱女www7788 | 亚洲欧洲日韩 | 一级理论片在线观看 | 久久免费视频6 | 国产精品网红直播 | 欧美色图另类 | 亚洲精品在线一区二区 | 色av婷婷 | 欧美日韩一区二区三区在线免费观看 | 亚洲天堂激情 | 狠狠色丁香 | 黄污在线看 | 一区二区三区四区在线 | 天天在线操 | 亚洲成人一二三 | 欧美另类v | 在线播放 日韩专区 | 成人一级片在线观看 | 99久热在线精品视频 | 欧美精品国产综合久久 | 欧美成年人在线视频 | 欧美日韩18 | 欧美日韩伦理在线 | av一级片 | 成人欧美日韩国产 | 中文字幕永久在线 | 国产91对白在线播 | 日韩中文字幕免费 | 精品国产一区二区三区在线观看 | 国产高清视频免费在线观看 | 久久久av免费 | 亚洲精品国产精品国自产在线 | 久青草影院 | 婷婷亚洲最大 | 黄色a一级视频 | 国产亚洲婷婷 | 青春草免费视频 | 美女免费黄网站 | 天天夜夜操 | 久久天天躁狠狠躁亚洲综合公司 | 国产精品一区二区久久精品爱微奶 | 日韩videos高潮hd | 日日骑| 欧美精品乱码久久久久久按摩 | 久久国产高清 | 日韩a级黄色片 | 天天射天天操天天干 | 亚洲国产片色 | 国内精品美女在线观看 | 91亚洲国产| 在线观看视频国产一区 | 成人九九视频 | 91精品日韩 | 精品一区二区视频 | 欧美精品久 | 精品久久久久久综合日本 | se婷婷| 国产在线超碰 | 视频福利在线观看 | 久久在线免费视频 | 中文字幕视频一区 | 久久久久国产成人精品亚洲午夜 | 日韩在线观看不卡 | 午夜精品一区二区三区在线 | 日韩a级免费视频 | 欧美人牲 | 91私密视频| 97在线视频网站 | 超碰人人在线 | 可以免费观看的av片 | 国产中文视 | 欧美一二三专区 | 欧美男男激情videos | av黄色成人 | 亚洲最新视频在线播放 | 欧亚久久 | 亚洲精品美女在线 | 国产精品99久久久久久武松影视 | av网站免费线看精品 | 免费高清无人区完整版 | 国内成人综合 | 97成人免费 | 五月婷婷久久丁香 | 四虎5151久久欧美毛片 | 精品国产精品国产偷麻豆 | 免费av观看网站 | www.福利| 狠狠夜夜| 久久伊人五月天 | 久久久久久久久久久网站 | 日本 在线 视频 中文 有码 | 深爱激情五月婷婷 | 最新av免费在线观看 | 黄色大片中国 | 精品国产免费一区二区三区五区 | 99久久精品免费看国产免费软件 | 国产精品视频最多的网站 | 成人免费看片98欧美 | 久久 一区| 中文在线a天堂 | 欧美日韩观看 | 国产精品视频app | 色欧美88888久久久久久影院 | 91激情视频在线播放 | 一区中文字幕在线观看 | 欧美久久久影院 | 亚洲综合色视频在线观看 | 婷婷丁香色综合狠狠色 | 黄色av观看| 亚洲人人av | 黄污视频网站 | 日韩电影中文 | 日日夜夜狠狠 | 久草视频中文在线 | 精品v亚洲v欧美v高清v | 97成人精品视频在线观看 | 国产精美视频 | 成人av电影网址 | www.香蕉视频 | 免费精品在线 | 国产亚洲va综合人人澡精品 | 最近日韩免费视频 | 视频在线精品 | 亚洲闷骚少妇在线观看网站 | 久久人人看 | 激情网五月天 | 在线网站黄| 午夜视频免费 | 久久成人国产精品 | 91福利专区 | 国产不卡高清 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 国产又粗又猛又爽又黄的视频免费 | 亚洲一区二区三区毛片 | 亚洲精品在线视频网站 | av福利免费 | 一区二区三区在线看 | 色婷婷av国产精品 | 7777精品伊人久久久大香线蕉 | 免费国产视频 | 久久精品国产v日韩v亚洲 | 91桃色免费视频 | 久久高清av| www久久久久 | 五月婷婷激情五月 | 91精品国产自产91精品 | 欧美日韩免费网站 | 黄色网中文字幕 | 久久香蕉电影网 | 亚州中文av| 人人艹视频 | 久久99久久99精品免观看软件 | 不卡的av中文字幕 | 免费在线播放av电影 | 色多多污污| 黄色毛片视频免费 | 97超在线 | 亚洲片在线观看 | 日韩视频免费播放 | 久草在线这里只有精品 | 天堂网av 在线 | 婷婷国产一区二区三区 | 激情五月婷婷综合 | 亚洲精品系列 | 精品国产诱惑 | 国产最新在线视频 | 国产亚洲精品中文字幕 | 色香蕉视频| 久久综合久久八八 | av女优中文字幕在线观看 | 精品欧美一区二区精品久久 | 久久精品国产一区二区 | 日韩精品免费一线在线观看 | 日韩高清在线一区二区 | 久久久久亚洲精品中文字幕 | 国产精品一区二区三区久久 | 欧美精品视 | 久久久国产精品人人片99精片欧美一 | 在线观看av片| 五月婷婷在线综合 | 午夜精品久久久久久久久久久久 | 亚洲一区欧美精品 | 中文字幕 婷婷 | 久久精品国产v日韩v亚洲 | 欧美美女一级片 | 在线观看亚洲a | 五月婷婷六月丁香 | 91视频亚洲 | 超碰免费成人 | 天堂在线一区 | 午夜精品视频一区二区三区在线看 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产小视频在线看 | 久久久久 | 日韩精品久久中文字幕 | 久草视频在线观 | 久久久观看 | 欧美日韩免费看 | 日韩高清不卡在线 | 久久人人爽人人爽人人片av免费 | 日日日干 | 91九色丨porny丨丰满6 | 日韩欧美高清一区二区三区 | 久久草在线免费 | 国产一二区视频 | 在线观看免费观看在线91 | 成年人国产视频 | 久久电影网站中文字幕 | www.国产在线观看 | 欧美91精品国产自产 | 91亚洲在线 | 免费欧美精品 | 免费看十八岁美女 | 波多野结衣精品在线 | 日本韩国欧美在线观看 | 国产精品久久久久婷婷二区次 | 久久综合偷偷噜噜噜色 | 日本久热| 亚洲国产欧美在线人成大黄瓜 | 97超碰成人 | 成人av高清在线观看 | 国产成人亚洲精品自产在线 | 婷婷中文字幕在线观看 | 在线电影日韩 | 免费高清男女打扑克视频 | 九九九毛片 | 97国产精品| 狠狠色狠狠色综合系列 | 免费久久99精品国产 | 欧美亚洲国产精品久久高清浪潮 | 激情五月av | 女人18精品一区二区三区 | 波多野结衣在线视频免费观看 | 亚洲91中文字幕无线码三区 | 99精品福利视频 | 免费观看黄色12片一级视频 | 91精品国产综合久久福利不卡 | 国产无吗一区二区三区在线欢 | 久久久精品国产免费观看同学 | 久久久免费精品 | 91久草视频 | 欧美一级大片在线观看 | 欧美日韩成人 | 国产成人精品久久久久 | 伊人亚洲综合 | 亚洲成人资源在线 | 99在线热播精品免费99热 | 国产经典 欧美精品 | 欧美精品成人在线 | 99热99热 | 国产精品99免费看 | 亚洲1区 在线 | 激情深爱.com | 久久综合久久综合这里只有精品 | 在线播放你懂 | 亚洲免费av片| 日韩在线视频网站 | 亚洲,播放| 亚洲一区二区三区四区在线视频 | www亚洲国产 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产99久 | 久久视影| 99久久精品国产网站 | 久久免费视频5 | 久久精品中文字幕一区二区三区 | 日韩激情网 | 丝袜av一区| 日本不卡123区 | 九九亚洲精品 | 久久久www成人免费精品张筱雨 | 天天做天天爽 | 999久久久 | 久久久免费精品 | 久久精品精品 | 天天做日日爱夜夜爽 | 黄色资源网站 | 欧美二区在线播放 | 在线中文字幕视频 | 亚洲天堂首页 | 99精品国产99久久久久久97 | 91中文字幕在线播放 | 精品一区二区三区久久久 | 久久国产成人午夜av影院潦草 | a级成人毛片 | 九色琪琪久久综合网天天 | 91人人网| 69国产精品视频 | 日韩三级中文字幕 | 日韩av中文在线 | 国产亚洲精品久 | 亚洲精品免费观看 | 国产一级精品绿帽视频 | 天堂av网在线 | 手机av在线网站 | 91视频观看免费 | 欧美久久影院 | 国产日韩精品一区二区三区 | 免费在线观看污网站 | 日本最新高清不卡中文字幕 | 日日夜夜天天干 | av中文在线 | 在线国产中文字幕 | 69亚洲精品 | 国产高清不卡av | 中文字幕综合在线 | 国产精品夜夜夜一区二区三区尤 | 亚洲一级国产 | 麻豆成人精品视频 | 在线99| 99视频在线播放 | 看污网站| 中文字幕在线看视频 | 亚洲视频免费在线观看 | 久草精品视频在线播放 | 成人sm另类专区 | 91视频午夜 | 久久精品一区二 | 免费国产ww| 日韩av一卡二卡三卡 | 九色porny真实丨国产18 | 亚洲欧洲一区二区在线观看 | 中文字幕一区二区三区视频 | 欧美天天干 | 九九亚洲精品 | 国产在线2020 | 日批视频在线 | 美女免费视频一区 | 手机在线黄色网址 | 国产一级片播放 | www.99久久.com | 中文有码在线 | 91麻豆视频| 色在线免费视频 | 亚洲成人黄色 | av中文字幕在线观看网站 | 不卡的av在线 | 欧美一区免费在线观看 | 婷婷丁香国产 | 日韩欧美视频免费在线观看 | 在线观看日本韩国电影 | 在线视频你懂 | 黄网站污 | 中文字幕永久在线 | 亚洲黄色小说网 | 亚洲最大免费成人网 | 国产免费片| 国产欧美三级 | 2021国产在线视频 | 久久免费成人网 | 国产成人亚洲精品自产在线 | 天天干,天天草 | 成人黄色视 | 人人揉人人揉人人揉人人揉97 | 亚洲欧洲av在线 | 九九免费精品视频在线观看 | 涩涩伊人 | 色网站在线免费观看 | 韩国视频一区二区三区 | 97久久久免费福利网址 | 97在线视频免费 | 在线国产一区二区 | 久久久久久久久影视 | 91中文在线 | 日韩中文字幕亚洲一区二区va在线 | 日韩精品在线免费观看 | 国产精品久久久久久久毛片 | 国产精品成人自产拍在线观看 | 亚洲精品视频观看 | 成人欧美一区二区三区黑人麻豆 | 91人人澡人人爽 | 天天操天天射天天操 | 精品高清美女精品国产区 | 日日爱影视 | 国产精品久久久久久久婷婷 | 欧美a在线看 | 青青河边草手机免费 | 欧美少妇xx | 久久观看最新视频 | 一区二区三区在线免费观看 | 国产精品第一 | 欧美日韩在线精品 | 2021久久| 久久高清免费观看 | 亚洲精品在线国产 | 91中文字幕视频 | 亚洲一区二区黄色 | 超碰97av在线 | 91精品老司机久久一区啪 | 亚洲免费国产视频 | 麻豆视频大全 | 一级免费观看 | 黄色大片中国 | 视频福利在线观看 | 成人中心免费视频 | 日黄网站| 欧美黑人xxxx猛性大交 | 91色欧美 | 婷婷天天色 | aaa亚洲精品一二三区 | 国产成人一区二区三区电影 | 国产正在播放 | 91麻豆精品91久久久久同性 | 麻豆久久| 日韩免费观看高清 | 国产高清不卡av | 国产精品精品国产婷婷这里av | 免费视频成人 | 夜添久久精品亚洲国产精品 | 久久不卡av | 久久久久一区二区三区 | 久久免费看片 | 日韩免费观看视频 | 亚洲h在线播放在线观看h | 999久久久精品视频 日韩高清www | 天天干天天操天天射 | 美女久久久久 | 最近日韩免费视频 | 青青草久草在线 | 久久久久久蜜桃一区二区 | 久草电影在线观看 | 日韩视频一 | 久久综合狠狠综合久久狠狠色综合 | 正在播放日韩 | 久久9999久久| 久久久久久久久久久久久久av | 欧美大片mv免费 | 99精品视频在线观看播放 | 久久看免费视频 | 中文字幕av全部资源www中文字幕在线观看 | 91传媒在线观看 | 亚洲视频久久 | www.av小说| 国产精品久久av | 精品日韩在线 | 国产欧美最新羞羞视频在线观看 | 久久久久国产精品一区二区 | 99久久精品国产一区二区成人 | av在线亚洲天堂 | 国产精品入口66mio女同 | 丁香婷婷色月天 | 久久激情视频 久久 | 国产精品久久久久亚洲影视 | 91av视频免费在线观看 | 国产视频精品免费播放 | 国产在线一区观看 | 精品毛片一区二区免费看 | 97视频播放 | 成人一区二区三区中文字幕 | 久久人91精品久久久久久不卡 | 国产99久久久欧美黑人 | 丝袜一区在线 | 亚洲日本精品视频 | 久久综合狠狠狠色97 | 日韩欧美视频一区二区三区 | 特级黄色视频毛片 | 99视频导航 | 亚洲精品视频在线观看免费视频 | 色综合久久网 | 蜜臀久久99静品久久久久久 | 成人高清av在线 | 在线免费观看黄色 | 国产精品99久久久精品免费观看 | 精品久久久久久久久亚洲 | 国产国产人免费人成免费视频 | 91看片淫黄大片91 | 在线婷婷| 99精品久久久久 | 精品国模一区二区三区 | 国产成人黄色 | 中文字幕久久精品亚洲乱码 | 日韩电影久久久 | 99麻豆视频 | 96久久 | 91综合久久一区二区 | 超碰人人草 | 日韩三级在线观看 | 国产精品2018 | 国产91亚洲精品 | 久久久国产精品亚洲一区 | 亚洲高清91| 国产午夜亚洲精品 | 亚洲三级在线免费观看 | 日韩在线精品一区 | 欧美日韩网站 | 一区二区成人国产精品 | 亚洲一级片免费观看 | 免费高清在线视频一区· | 欧美一级视频在线观看 | 国产精品自拍av | 午夜精品久久久久99热app | 欧美天堂影院 | 婷婷丁香激情网 | 在线视频免费观看 | 91中文字幕永久在线 | 韩国av一区二区三区在线观看 | 丁香九月婷婷综合 | 国产精品免费麻豆入口 | 亚洲每日更新 | 99色婷婷 | 日韩二区三区在线观看 | av黄色影院 | 在线电影 一区 | 欧美性极品xxxx娇小 | 天天操夜夜曰 | av中文字幕在线看 | 91自拍成人 | 免费在线成人av电影 | 91麻豆精品国产 | 日韩欧美一区二区不卡 | 国内久久看 | 亚州五月| 久青草视频 | 日本动漫做毛片一区二区 | 一级成人网 | 国产一级性生活 | 高清免费在线视频 | 久草在线视频精品 | 精品亚洲成人 | 色99中文字幕 | 国产精品久久久久一区二区三区共 | 亚洲永久精品视频 | 黄色网在线免费观看 | 久久久久北条麻妃免费看 | 久久久久99精品成人片三人毛片 | 99r在线视频 | 日韩久久激情 | 亚洲三区在线 | 超碰在线人人草 | 亚洲黄色av网址 | 黄av免费 | 操操操日日日干干干 | 日本不卡一区二区三区在线观看 | 久草剧场 | 精品国产aⅴ一区二区三区 在线直播av | 九色自拍视频 | 1区2区3区在线观看 三级动图 | 久久av免费电影 | 国产精品毛片久久久 | 成人免费在线电影 | 国产99久久久精品 | 日本中文在线观看 | 日本动漫做毛片一区二区 | 激情偷乱人伦小说视频在线观看 | 少妇高潮流白浆在线观看 | 久草免费资源 | 成人国产精品免费 | 亚洲免费不卡 | 免费观看www7722午夜电影 | 久久久久久久久久久免费av | 欧美伊人网 | 亚洲天天在线日亚洲洲精 | 看毛片网站 | 久草在线在线精品观看 | 深爱激情站 | 成年人视频免费在线播放 | 91色欧美 | 国产精品自产拍在线观看蜜 | 久久久官网| 91亚·色| 中日韩免费视频 | 人人舔人人舔 | 丁香六月伊人 | 五月婷婷综合激情网 | 欧美日韩在线视频一区二区 | 亚洲欧美日韩一区二区三区在线观看 | 国产一级淫片免费看 | 婷婷色 亚洲 | 一本一本久久a久久精品牛牛影视 | 国产在线日本 | 99热手机在线观看 | 欧美一区二区在线刺激视频 | 久久噜噜少妇网站 | 2023av在线 | 国产精品一区二区久久国产 | 亚洲在线免费视频 | 欧美一级片免费 | 免费av观看 | 亚洲黄网站 | 在线观看视频在线 | 成人性生活大片 | 9999在线观看 | 中文字字幕在线 | 国产主播大尺度精品福利免费 | 一级欧美一级日韩 | 久久久久久国产精品久久 | 国产精品999久久久 久产久精国产品 | 日韩免费看视频 | 国产在线观看你懂得 | a视频在线观看 | 精品一区二区免费在线观看 | 久久人人爽人人片 | 色www免费视频 | 亚洲精品久久久久久中文传媒 | 丝袜av网站 | 香蕉久久久久久av成人 | 亚洲aⅴ免费在线观看 | 色婷婷综合久久久 | 欧美精品一区二区三区一线天视频 | 日韩在线视频一区二区三区 | 欧美日韩中字 | 91网址在线看 | 国产精品一区二区久久精品爱微奶 | 日韩最新中文字幕 | 亚洲无吗av| 中文字幕精品www乱入免费视频 | 欧美综合久久 | 99精品国产高清在线观看 | 成人 亚洲 欧美 | 中文字幕成人av | 亚洲人成人天堂h久久 | 91香蕉视频污在线 | 精品一区二区三区久久久 | 久久精品电影 | 亚洲永久免费av | a视频免费看 | 亚洲精品免费播放 | 91桃色在线免费观看 | 亚洲区精品视频 | 国内精品久久久久久久久久清纯 | 国产视频在线观看一区二区 | 欧美va日韩va | 国产aa精品 | 国产精品久久久久久久久软件 | 黄网站色成年免费观看 | 色婷婷色 | 欧美日韩国产亚洲乱码字幕 | 麻豆成人精品视频 | 欧美老少交| 91天天操| 国产尤物在线观看 | 中字幕视频在线永久在线观看免费 | 日韩在线观看视频免费 | 国产午夜精品在线 | 婷婷中文字幕在线观看 | 免费视频在线观看网站 | 在线观看日韩精品 | 久久精品99国产精品日本 | 99精品区| 亚洲一级片在线看 | 18国产精品福利片久久婷 | 中文字幕免费高 | 久久久国产一区二区三区 | 精精国产xxxx视频在线播放 | 国产成人久久久77777 | 毛片的网址| 五月婷婷在线观看 | 98久9在线 | 免费 | av在线一| 国产精品一二三 | 一区二区三区电影大全 | 一区二区三区日韩精品 | 91片黄在线观看动漫 | 色婷婷国产在线 | av高清网站在线观看 | 国产亚洲精品成人av久久ww | 天天伊人狠狠 | 一区二区电影在线观看 | 在线日韩视频 | 91精品人成在线观看 | 国产精品国产三级国产aⅴ9色 | 日韩理论片在线 | 99视频精品免费视频 | 日本高清免费中文字幕 | 六月色丁 | 久久久精品电影 | 午夜视频在线网站 | av免费在线免费观看 | 国产黄色片在线免费观看 | 中文字幕在线观看完整版电影 | 久久黄色免费视频 | 99久久日韩精品免费热麻豆美女 | 伊人久久国产 | 国产精品一区二区久久久久 | 久久久久亚洲精品中文字幕 | 黄色a视频免费 | 91精品一区二区三区蜜臀 | 日韩在线免费电影 | 亚洲精品ww | 天天摸天天舔天天操 | 97超碰人人澡人人 | 97狠狠干| 国产资源免费在线观看 | 亚洲日本一区二区在线 | 激情网站| 欧美日韩国产免费视频 | 美女免费视频一区二区 | 一级特黄aaa大片在线观看 | 亚洲成人资源在线观看 | 天天射天天射天天射 | 福利一区在线视频 | 国产欧美在线一区二区三区 | 观看免费av | 国产一区久久久 | 91色蜜桃 | 五月婷婷免费 | 婷婷色av | 亚洲高清视频在线观看免费 | 免费在线黄网 | 亚洲色图激情文学 | 国产99久久精品 | 欧美精品乱码久久久久久按摩 | 一区二区三区不卡在线 | 五月婷婷狠狠 | 色网免费观看 | 亚洲欧美日韩中文在线 | 国产97在线视频 | av在观看| 久久精品日韩 | 91人人爱 | 国产精品综合在线 | 免费观看久久久 | 97免费中文视频在线观看 | 成人黄色电影在线播放 | 久久人人爽人人爽人人 | 激情久久伊人 | 免费网站观看www在线观看 | 五月婷香蕉久色在线看 | 97精品视频在线 | 午夜成人免费电影 | 久久午夜鲁丝片 | a精品视频 | zzijzzij亚洲成熟少妇 | 久久久在线视频 | 精品国产电影一区二区 | 黄色一级大片在线免费看国产一 | 午夜精品久久久久久久久久久久 | 福利视频网站 | 91看片淫黄大片一级在线观看 | av中文字幕在线看 | 午夜久久网站 | 日日成人网 | 黄色av网站在线免费观看 | 蜜臀久久99精品久久久无需会员 | 三级视频日韩 | 午夜少妇| 国产精品久久久区三区天天噜 | 国产精品高潮呻吟久久av无 | 国产精品h在线观看 | 国产一级二级在线播放 | 国产色婷婷在线 | 夜色成人av | 亚洲午夜久久久影院 | 欧美日韩中文在线观看 | 亚洲黄色小说网址 | 一级欧美一级日韩 | 草久久久久久久 | 成年人在线播放视频 | 色88久久| 中文字幕在线观看视频网站 | 午夜精品视频免费在线观看 | 国产最新精品视频 | 天天操网址 | 亚洲女在线 | 国产日本在线播放 | 91欧美精品 | 欧美精品久久久久久久 | 日韩欧美xxx| 在线看日韩 | 81精品国产乱码久久久久久 | 美女视频久久久 | 97人人射 | 久久尤物电影视频在线观看 | 99久久99久久精品国产片果冰 | 在线观看视频国产一区 | 热久久这里只有精品 | 国产视频一区在线免费观看 | 在线观看黄色的网站 | 黄色大片免费播放 | 三级av免费观看 | 欧美韩国日本在线观看 | 国产精品久久久久久久久搜平片 | 亚洲做受高潮欧美裸体 | 4hu视频| 国语对白少妇爽91 | 国产精品视频你懂的 | 亚洲精品在线一区二区三区 | 日韩久久久 | 国产精品va在线 | 日韩在线视频一区 | 福利一区在线 | 亚洲第一香蕉视频 | 免费看三级网站 | 日韩精品1区2区 | 国产精品18久久久久久久久 | 国产视频久久 | 精品久久网 | 美腿丝袜一区二区三区 | 久草在线99 | 天天射天天射 | 久久男人视频 | 久草免费在线观看 | 欧美色道 | 开心激情综合网 | 国产精品美女999 | 97精品超碰一区二区三区 | 欧美日韩中 | 人人超碰在线 | 亚洲一区二区观看 | av高清不卡| 国产福利小视频在线 | 国产精品久久一区二区无卡 | 精精国产xxxx视频在线播放 | 久久久国产一区二区 | 精品在线亚洲视频 | 99视频在线精品国自产拍免费观看 | 九九精品久久久 | 人人揉人人揉人人揉人人揉97 | 高清久久久久久 | 婷婷视频在线播放 | 久久国产手机看片 | 涩涩资源网 | 国产一级一片免费播放放 | 五月天色综合 | 黄色特一级 | 欧美极度另类 | 成人性生交大片免费观看网站 | 日韩亚洲欧美中文字幕 | 国产麻豆果冻传媒在线观看 | 九色视频自拍 | 精品国产一区二区三区在线观看 | 激情av综合| 精品国模一区二区三区 | 五月综合激情网 | 97超碰超碰久久福利超碰 | 中文日韩在线视频 | 奇米网444 | 天天操狠狠操夜夜操 | 五月花丁香婷婷 | 国产群p视频| 又黄又爽又刺激视频 | 精品字幕在线 | 亚洲色图av| 在线免费观看黄色 | 国产中文字幕久久 | 亚洲电影一区二区 | 在线观看免费版高清版 | 狠狠干夜夜爱 | 精品在线视频一区二区三区 | 麻豆国产视频 | 黄av免费在线观看 | 国产区久久 | 超碰97在线资源 | 99热国产在线中文 | 日本少妇久久久 | 99久视频 | 人人干在线观看 | 午夜av在线 | 国产性天天综合网 | 不卡av在线免费观看 | 国产黄影院色大全免费 | 五月婷婷狠狠 | 精品在线视频一区二区三区 | 久久国产精品久久w女人spa | 亚洲精品午夜aaa久久久 | 99精品国产视频 | 91视频国产高清 | 波多野结衣视频一区 | 91精品综合在线观看 | 国产高清视频免费最新在线 | 一区二区精品在线 | 天天天插| 成人在线你懂得 | 日韩电影在线一区二区 | 成人午夜电影免费在线观看 | 缴情综合网五月天 | 成人av影视在线 | 国产亚州av|