国产精品青草久-国产精品情侣愉拍-国产精品区网红主-国产精品区一区二-国产精品热久久-国产精品热热热-国产精品人aⅴ-国产精品人成在线-国产精品人妻人伦-国产精品人人

金喜正规买球

深度剖析Java中的Lambda表達(dá)式

原創(chuàng)|行業(yè)資訊|編輯:郝浩|2017-08-11 17:52:08.000|閱讀 1090 次

概述:本文將從字節(jié)碼(Bytecode)的級(jí)別研究Lambda表達(dá)式是如何工作的,以及如何將它與getter、setter和其它技巧組合起來的。

# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

在本文中,我們將介紹Java 8中Lambda表達(dá)式的一些鮮為人知的技巧及其局限性,其主要受眾包括中高級(jí)Java開發(fā)人員、研究人員和工具編寫者。在這里我們將只使用公共Java API而不使用com.sun和其它的內(nèi)部類,因此代碼可以在不同的JVM中實(shí)現(xiàn)。

快速介紹


Lambda表達(dá)式在Java 8中被引入,作為一種實(shí)現(xiàn)匿名函數(shù)的方法,在某些情況下,可作為匿名類的替代方案。在字節(jié)碼(Bytecode)的級(jí)別中,Lambda表達(dá)式用invokedynamic指令替代,該指令能夠簡(jiǎn)化JVM上動(dòng)態(tài)類型語言的編譯器和運(yùn)行時(shí)系統(tǒng)的實(shí)現(xiàn)。其delegates類能夠調(diào)用Lambda主體內(nèi)所定義的代碼的實(shí)例。

例如,我們有以下代碼:

void printElements(List<String> strings){
    strings.forEach(item -> System.out.println("Item = %s", item));
}

這段代碼由Java編譯器編譯后成為這樣:

private static void lambda_forEach(String item) { //generated by Java compiler
    System.out.println("Item = %s", item);
}
private static CallSite bootstrapLambda(Lookup lookup, String name, MethodType type) { //
    //lookup = provided by VM
    //name = "lambda_forEach", provided by VM
    //type = String -> void
    MethodHandle lambdaImplementation = lookup.findStatic(lookup.lookupClass(), name, type);
    return LambdaMetafactory.metafactory(lookup,
        "accept",
        MethodType.methodType(Consumer.class), //signature of lambda factory
        MethodType.methodType(void.class, Object.class), //signature of method Consumer.accept after type erasure  
        lambdaImplementation, //reference to method with lambda body
        type);
}
void printElements(List < String > strings) {
    Consumer < String > lambda = invokedynamic# bootstrapLambda, #lambda_forEach
    strings.forEach(lambda);
}

invokedynamic指令可以將其粗略地表達(dá)為以下代碼:

private static CallSite cs;
void printElements(List < String > strings) {
    Consumer < String > lambda;
    //begin invokedynamic
    if (cs == null)
        cs = bootstrapLambda(MethodHandles.lookup(), "lambda_forEach", MethodType.methodType(void.class, String.class));
    lambda = (Consumer < String > ) cs.getTarget().invokeExact();
    //end invokedynamic
    strings.forEach(lambda);
}

正如你所看到的,LambdaMetafactory用于生成某個(gè)目標(biāo)函數(shù)(匿名類)在工廠模式下的調(diào)用點(diǎn)(call site)。而工廠模式會(huì)返回這個(gè)函數(shù)接口在使用invokeExact的實(shí)現(xiàn)結(jié)果。如果Lambda附加了變量,那么invokeExact將會(huì)把這些變量作為實(shí)際參數(shù)。

在Oracle JRE 8中,metafactory會(huì)使用,通過實(shí)現(xiàn)函數(shù)接口的方式,動(dòng)態(tài)生成一個(gè)Java類。如果Lambda表達(dá)式包含外部變量,則可以在生成類中添加附加字段。這種方法類似于Java語言中的匿名類,但有以下的不同點(diǎn):

  • 匿名類是由Java編譯器在編譯時(shí)生成的。
  • 而Lambda實(shí)現(xiàn)的類是由JVM在運(yùn)行時(shí)生成的。

注意:metafactory的實(shí)現(xiàn)依賴于JVM供應(yīng)商和版本

invokedynamic指令并不只用于Java中的Lambda表達(dá)式,該指令的引入主要是為了JVM之上動(dòng)態(tài)語言的運(yùn)行。Nashorn,Java開箱即用的下一代JavaScript引擎中大量地使用了這個(gè)指令。

在本文的后面部分,我們將重點(diǎn)討論LambdaMetafactory類及其功能。本文的下一節(jié)是基于假設(shè)你完全理解了metafactory方法的工作原理和方法。

關(guān)于Lambda的技巧


在本節(jié)中我們將介紹如何在日常任務(wù)中使用Lambda的動(dòng)態(tài)構(gòu)建。

Lambda與受檢查異常(Checked Exception

并不是Java提供的所有函數(shù)接口都支持受檢查異常。是否支持受檢查異常在Java世界中是一場(chǎng)古老的圣戰(zhàn)。

如果為了結(jié)合使用Java Stream,你需要lambda中含有受檢查異常的代碼,那該怎么做?比如,我們需要將字符串列表轉(zhuǎn)換成這樣的url列表:

Arrays.asList("//localhost/", "//github.com")
.stream()
.map(URL::new)
.collect(Collectors.toList())

在throws中已聲明了受檢查異常,因此,它不能在中直接作為函數(shù)引用。

你可能會(huì)說:“這沒問題啊,我可以這么干。”

public static <T> T uncheckCall(Callable<T> callable) {
  try { return callable.call(); }
  catch (Exception e) { return sneakyThrow(e); }
}
private static <E extends Throwable, T> T sneakyThrow0(Throwable t) throws E { throw (E)t; }
public static <T> T sneakyThrow(Throwable e) {
  return Util.<RuntimeException, T>sneakyThrow0(e);
}
// Usage sample
//return s.filter(a -> uncheckCall(a::isActive))
//        .map(Account::getNumber)
//        .collect(toSet());

這個(gè)做法并不高明,原因如下:

  • 使用了try-catch語句。
  • 重新拋出了異常。
  • 使用了Java的類型擦除。

上述行為所想要解決的問題我們可以更“規(guī)范”的作如下表達(dá):

  • 受檢查異常只能由Java語言的編譯器來識(shí)別。
  • 在JVM級(jí)別上,throws的異常只是無語義函數(shù)的元數(shù)據(jù)。
  • 在字節(jié)碼和JVM級(jí)別,受檢查異常和非受檢查異常不易區(qū)分。

解決方法是在函數(shù)中包裹Callable.call的調(diào)用,而不引入throws的部分:

static <V> V callUnchecked(Callable<V> callable){
    return callable.call();
}

這段代碼不會(huì)被Java編譯器所編譯,因?yàn)镃allable.call的throws部分包含受檢查異常。但是我們可以使用動(dòng)態(tài)構(gòu)建的lambda表達(dá)式來刪除這個(gè)部分。

首先,我們應(yīng)當(dāng)聲明一個(gè)沒有throws部分但能夠委托調(diào)用Callable.call的函數(shù)接口:

@FunctionalInterface
interface SilentInvoker {
    MethodType SIGNATURE = MethodType.methodType(Object.class, Callable.class);//signature of method INVOKE
    <V> V invoke(final Callable<V> callable);
}

第二步是使用LambdaMetafactory創(chuàng)建這個(gè)接口的實(shí)現(xiàn),并委托SilentInvoker.invoke調(diào)用Callable.call。如前所述,在字節(jié)碼級(jí)別,throws部分被忽略了,因此,SilentInvoker.invoke可以在不聲明受檢查異常的情況下調(diào)用Callable.call。

private static final SilentInvoker SILENT_INVOKER;
final MethodHandles.Lookup lookup = MethodHandles.lookup();
final CallSite site = LambdaMetafactory.metafactory(lookup,
                    "invoke",
                    MethodType.methodType(SilentInvoker.class),
                    SilentInvoker.SIGNATURE,
                    lookup.findVirtual(Callable.class, "call", MethodType.methodType(Object.class)),
                    SilentInvoker.SIGNATURE);
SILENT_INVOKER = (SilentInvoker) site.getTarget().invokeExact();

第三步編寫在不需要聲明受檢查異常的情況下調(diào)用Callable.call的函數(shù)。

public static <V> V callUnchecked(final Callable<V> callable) /*no throws*/ {
    return SILENT_INVOKER.invoke(callable);
}

現(xiàn)在,我們可以毫無問題的使用檢查異常重寫stream。

Arrays.asList("//localhost/", "//dzone.com")
.stream()
.map(url -> callUnchecked(() -> new URL(url)))
.collect(Collectors.toList());

這段代碼會(huì)被成功編譯,因?yàn)閏allUnchecked沒有聲明受檢查異常。此外,由于JVM中只有一個(gè)類來實(shí)現(xiàn)接口SilentInvoker,因此調(diào)用此方法可能會(huì)使用單態(tài)內(nèi)聯(lián)緩存。

如果Callable.call在運(yùn)行時(shí)拋出了一些異常,它將會(huì)通過調(diào)用來進(jìn)行捕捉,而不會(huì)出現(xiàn)任何問題:

try{
    callUnchecked(() -> new URL("Invalid URL"));
} catch (final Exception e){
    System.out.println(e);
}

盡管有這樣的方法來實(shí)現(xiàn)功能,但我還是強(qiáng)烈推薦以下的用法:

只有當(dāng)調(diào)用代碼保證了無異常產(chǎn)生的情況下才使用callUnchecked隱藏受檢查異常。

下面的示例演示了這種方法:

callUnchecked(() -> new URL("//dzone.com")); //this URL is always valid and the constructor never throws MalformedURLException

這個(gè)方法的可在開源項(xiàng)目中找到。

與Getters和Setters的協(xié)同工作

這一節(jié)對(duì)于編寫JSON、Thrift等不同格式的序列化/反序列化的程序員很有幫助。另外,如果你的代碼嚴(yán)重依賴于用于JavaBean的getter和setter的Java反射,那么它將讓你收益良多。

JavaBean中聲明的getter,命名為getXXX,是無參數(shù)和非void返回類型的函數(shù),JavaBean中聲明的setter,命名為setXXX,是帶有單個(gè)參數(shù)和返回類型為void的函數(shù)。它們可以表示為這樣的函數(shù)接口:

  • getter可以表示為一個(gè)函數(shù)參數(shù)由this引用的 。
  • setter可以表示為一個(gè)第一參數(shù)由this引用,第二參數(shù)為傳遞給setter的。

現(xiàn)在我們創(chuàng)建兩個(gè)可將任意getter或setter轉(zhuǎn)換成這些函數(shù)接口的方法。這兩個(gè)函數(shù)接口是否為泛型并不重要。在類型消除之后,實(shí)際的類型等于對(duì)象。自動(dòng)選擇返回類型和參數(shù)可以由LambdaMetafactory完成。此外,有助于緩存有相同getter或setter的lambda。

首先,有必要為getter和setter聲明一個(gè)緩存,來自Reflection API的代表了當(dāng)前getter或setter,并作為一個(gè)key使用。緩存中的值表示特定getter或setter的動(dòng)態(tài)構(gòu)造函數(shù)接口。

private static final Cache<Method, Function> GETTERS = CacheBuilder.newBuilder().weakValues().build();
private static final Cache<Method, BiConsumer> SETTERS = CacheBuilder.newBuilder().weakValues().build();

其次,創(chuàng)建工廠方法,通過從方法句柄中指向getter或setter來創(chuàng)建函數(shù)接口的實(shí)例: 

private static Function createGetter(final MethodHandles.Lookup lookup,
                                         final MethodHandle getter) throws Exception{
        final CallSite site = LambdaMetafactory.metafactory(lookup, "apply",
                MethodType.methodType(Function.class),
                MethodType.methodType(Object.class, Object.class), //signature of method Function.apply after type erasure
                getter,
                getter.type()); //actual signature of getter
        try {
            return (Function) site.getTarget().invokeExact();
        } catch (final Exception e) {
            throw e;
        } catch (final Throwable e) {
            throw new Error(e);
        }
}
private static BiConsumer createSetter(final MethodHandles.Lookup lookup,
                                           final MethodHandle setter) throws Exception {
        final CallSite site = LambdaMetafactory.metafactory(lookup,
                "accept",
                MethodType.methodType(BiConsumer.class),
                MethodType.methodType(void.class, Object.class, Object.class), //signature of method BiConsumer.accept after type erasure
                setter,
                setter.type()); //actual signature of setter
        try {
            return (BiConsumer) site.getTarget().invokeExact();
        } catch (final Exception e) {
            throw e;
        } catch (final Throwable e) {
            throw new Error(e);
        }

}

通過對(duì)samMethodType和instantiatedMethodType(分別對(duì)應(yīng)metafactory的第三個(gè)和第五個(gè)參數(shù))之間的區(qū)分,可以實(shí)現(xiàn)類型擦除后的函數(shù)接口中基于對(duì)象的參數(shù)和實(shí)際參數(shù)類型之間的自動(dòng)轉(zhuǎn)換并以getter或setter作為返回類型。實(shí)例化方法類型是提供lambda實(shí)現(xiàn)的特殊方法。

然后,在緩存的支持下,為這些工廠創(chuàng)建一個(gè)外觀:

public static Function reflectGetter(final MethodHandles.Lookup lookup, final Method getter) throws ReflectiveOperationException {
        try {
            return GETTERS.get(getter, () -> createGetter(lookup, lookup.unreflect(getter)));
        } catch (final ExecutionException e) {
            throw new ReflectiveOperationException(e.getCause());
        }
}
public static BiConsumer reflectSetter(final MethodHandles.Lookup lookup, final Method setter) throws ReflectiveOperationException {
        try {
            return SETTERS.get(setter, () -> createSetter(lookup, lookup.unreflect(setter)));
        } catch (final ExecutionException e) {
            throw new ReflectiveOperationException(e.getCause());
        }
}

作為使用 Java 反射 API 的 Method 實(shí)例,獲取的方法信息可以輕松地轉(zhuǎn)換為 MethodHandle。考慮到實(shí)例方法總是有隱藏的第一個(gè)參數(shù)用于將其傳遞給方法。靜態(tài)方法沒有這些隱藏的參數(shù)。例如,方法具有 int intValue 的實(shí)際簽名(Integer this)。這個(gè)技巧用于實(shí)現(xiàn) getter 和 setter 的功能包裝器。

現(xiàn)在是時(shí)候測(cè)試代碼了:

final Date d = new Date();
final BiConsumer<Date, Long> timeSetter = reflectSetter(MethodHandles.lookup(), Date.class.getDeclaredMethod("setTime", long.class));
timeSetter.accept(d, 42L); //the same as d.setTime(42L);
final Function<Date, Long> timeGetter = reflectGetter(MethodHandles.lookup(), Date.class.getDeclaredMethod("getTime"));
System.out.println(timeGetter.apply(d)); //the same as d.getTime()
//output is 42

這種緩存getter和setter的方法可以有效地用于序列化和反序列化期間,使用getter和setter的序列化/反序列化庫(如Jackson)。

使用LambdaMetafactory動(dòng)態(tài)生成的實(shí)現(xiàn)調(diào)用函數(shù)接口比通過Java Reflection API的調(diào)用要。

你可以在開源項(xiàng)目中找到。

限制和缺陷

在本節(jié)中,我們將給出在 Java 編譯器和 JVM 中與 lambdas 相關(guān)的一些錯(cuò)誤和限制。 所有這些限制都可以在 OpenJDK 和 Oracle JDK 上重現(xiàn),它們適用于 Windows 和 Linux 的 javac 1.8.0_131。

從方法句柄構(gòu)建 Lambdas

如你所知,可以使用 LambdaMetafactory 動(dòng)態(tài)構(gòu)建 lambda。要實(shí)現(xiàn)這一點(diǎn),你應(yīng)該指定一個(gè) MethodHandle,其中包含一個(gè)由函數(shù)接口聲明的單個(gè)方法的實(shí)現(xiàn)。我們來看看這個(gè)簡(jiǎn)單的例子:

final class TestClass {
            String value = "";
            public String getValue() {
                return value;
            }
            public void setValue(final String value) {
                this.value = value;
            }
        }
final TestClass obj = new TestClass();
obj.setValue("Hello, world!");
final MethodHandles.Lookup lookup = MethodHandles.lookup();
final CallSite site = LambdaMetafactory.metafactory(lookup,
                "get",
                MethodType.methodType(Supplier.class, TestClass.class),
                MethodType.methodType(Object.class),
                lookup.findVirtual(TestClass.class, "getValue", MethodType.methodType(String.class)),
                MethodType.methodType(String.class));
final Supplier<String> getter = (Supplier<String>) site.getTarget().invokeExact(obj);
System.out.println(getter.get());

上面的代碼等價(jià)于:

final TestClass obj = new TestClass();
obj.setValue("Hello, world!");
final Supplier<String> elementGetter = () -> obj.getValue();
System.out.println(elementGetter.get());

但如果我們用一個(gè)可以表示一個(gè)字段獲取方法的方法處理器來替換指向 getValue 的方法處理器的話,情況會(huì)如何呢:

final CallSite site = LambdaMetafactory.metafactory(lookup,
                "get",
                MethodType.methodType(Supplier.class, TestClass.class),
                MethodType.methodType(Object.class),
                lookup.findGetter(TestClass.class, "value", String.class), //field getter instead of method handle to getValue
                MethodType.methodType(String.class));

該代碼應(yīng)該是可以按照預(yù)期來運(yùn)行的,因?yàn)?findGetter 會(huì)返回一個(gè)指向字段獲取方法、并且具備有效簽名的方法處理器。 但是如果你運(yùn)行了代碼,就會(huì)看到如下異常:

java.lang.invoke.LambdaConversionException: Unsupported MethodHandle kind: getField

有趣的是,如果我們使用 ,字段獲取方法卻可以運(yùn)行得很好:

final Supplier<String> getter = MethodHandleProxies
                                       .asInterfaceInstance(Supplier.class, lookup.findGetter(TestClass.class, "value", String.class)
                                       .bindTo(obj));

要注意 MethodHandleProxies 并非動(dòng)態(tài)創(chuàng)建 lambda 表達(dá)式的理想方法,因?yàn)檫@個(gè)類只是把 MethodHandle 封裝到一個(gè)代理類里面,然后把對(duì)的調(diào)用指派給了 方法。 這種方法使得 Java 反射機(jī)制運(yùn)行起來非常的慢。

如前所述,并不是所有的方法句柄都可以在運(yùn)行時(shí)用于構(gòu)建 lambdas。

只有幾種與方法相關(guān)的方法句柄可以用于 lambda 表達(dá)式的動(dòng)態(tài)構(gòu)造

這包括:

  • REF_invokeInterface: 對(duì)于接口方法可通過 來構(gòu)建
  • REF_invokeVirtual: 對(duì)于由類提供的虛方法可以通過 Lookup.findVirtual 來構(gòu)建
  • REF_invokeStatic: 對(duì)于靜態(tài)方法可通過 構(gòu)建
  • REF_newInvokeSpecial: 對(duì)于構(gòu)造函數(shù)可通過 構(gòu)建
  • REF_invokeSpecial: 對(duì)于私有方法和由類提供的早綁定的虛方法可通過構(gòu)建

其他方法的句柄將會(huì)觸發(fā) LambdaConversionException 異常。

泛型異常

這個(gè) bug 與 Java 編譯器以及在 throws 部分聲明泛型異常的能力有關(guān)。下面的示例代碼演示了這種行為:

interface ExtendedCallable<V, E extends Exception> extends Callable<V>{
        @Override
        V call() throws E;
}
final ExtendedCallable<URL, MalformedURLException> urlFactory = () -> new URL("//localhost");
urlFactory.call();

這段代碼應(yīng)該編譯成功因?yàn)?URL 構(gòu)造器拋出 MalformedURLException。但事實(shí)并非如此。編譯器產(chǎn)生以下錯(cuò)誤消息:


Error:(46, 73) java: call() in <.anonymous Test$CODEgt; cannot implement call() in ExtendedCallable
overridden method does not throw java.lang.Exception

但如果我們用一個(gè)匿名類替換 lambda 表達(dá)式,那么代碼就編譯成功了:

final ExtendedCallable<URL, MalformedURLException> urlFactory = new ExtendedCallable<URL, MalformedURLException>() {
            @Override
            public URL call() throws MalformedURLException {
                return new URL("//localhost");
            }
        };
urlFactory.call();

結(jié)論很簡(jiǎn)單:

當(dāng)與lambda表達(dá)式配合使用時(shí),泛型異常的類型推斷不能正確工作。

泛型邊界

一個(gè)帶有多個(gè)邊界的泛型可以用 & 號(hào)構(gòu)造:<T extends A & B & C & ... Z>。這種泛型參數(shù)定義很少被使用,但由于其局限性,它對(duì) Java 中的 lambda 表達(dá)式有某些影響:

  • 每一個(gè)邊界,除了第一個(gè)邊界,都必須是一個(gè)接口。
  • 具有這種泛型的類的原始版本只考慮了約束中的第一個(gè)邊界。

第二個(gè)局限性使 Java 編譯器在編譯時(shí)和 JVM 在運(yùn)行時(shí)產(chǎn)生不同的行為,當(dāng) Lambda 表達(dá)式的聯(lián)動(dòng)發(fā)生時(shí)。可以使用以下代碼重現(xiàn)此行為:

final class MutableInteger extends Number implements IntSupplier, IntConsumer { //mutable container of int value
    private int value;
    public MutableInteger(final int v) {
        value = v;
    }
    @Override
    public int intValue() {
        return value;
    }
    @Override
    public long longValue() {
        return value;
    }
    @Override
    public float floatValue() {
        return value;
    }
    @Override
    public double doubleValue() {
        return value;
    }
    @Override
    public int getAsInt() {
        return intValue();
    }
    @Override
    public void accept(final int value) {
        this.value = value;
    }
}
static < T extends Number & IntSupplier > OptionalInt findMinValue(final Collection < T > values) {
    return values.stream().mapToInt(IntSupplier::getAsInt).min();
}
final List < MutableInteger > values = Arrays.asList(new MutableInteger(10), new MutableInteger(20));
final int mv = findMinValue(values).orElse(Integer.MIN_VALUE);
System.out.println(mv);

這段代碼絕對(duì)沒錯(cuò),而且用 Java 編譯器編譯也會(huì)成功。MutableInteger 這個(gè)類可以滿足泛型 T 的多個(gè)類型綁定約束:

  • MutableInteger 是從 Number 繼承的
  • MutableInteger 實(shí)現(xiàn)了 IntSupplier

但是在運(yùn)行的時(shí)候會(huì)拋出異常:

java.lang.BootstrapMethodError: call site initialization exception
    at java.lang.invoke.CallSite.makeSite(CallSite.java:341)
    at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:307)
    at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:297)
    at Test.minValue(Test.java:77)
Caused by: java.lang.invoke.LambdaConversionException: Invalid receiver type class java.lang.Number; not a subtype of implementation type interface java.util.function.IntSupplier
    at java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:233)
    at java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:303)
    at java.lang.invoke.CallSite.makeSite(CallSite.java:302)

之所以會(huì)這樣是因?yàn)?Java Stream 的管道只捕獲到了一個(gè)原始類型,它是一個(gè) Number 類。Number 類本身并沒有實(shí)現(xiàn) IntSupplier 接口。 要修復(fù)此問題,可以在一個(gè)作為方法引用的單獨(dú)方法中明確定義一個(gè)參數(shù)類型:

private static int getInt(final IntSupplier i){
    return i.getAsInt();
}
private static <T extends Number & IntSupplier> OptionalInt findMinValue(final Collection<T> values){
    return values.stream().mapToInt(UtilsTest::getInt).min();
}

這個(gè)示例就演示了 Java 編譯器和運(yùn)行時(shí)所進(jìn)行的一次不正確的類型推斷。

在 Java 中的編譯時(shí)和運(yùn)行時(shí)處理與 lambdas 結(jié)合的多個(gè)類型綁定會(huì)導(dǎo)致不兼容。

 

本文翻譯自


標(biāo)簽:Java

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動(dòng)
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
精品成人片深夜 | 亚洲成av人网站在线播放 | 中日精品无码一本二本三本 | 精品国产一区 | 亚洲va中文字幕久久无码一区 | 国产高清精 | 人妻少妇精品 | 91国精产品自偷自偷综合 | 熟妇熟女乱妇乱女网站 | 日本午夜精品理论片a级 | 黄桃av无码免费一区二区三区 | 东京热av加勒比一区二区 | 色综合欧美在线视频区 | 亚洲成av人片无码不卡 | 97精品国产一区 | 国产在线观看精 | 性欧美欧美巨大69 | 天天操天天操 | 日韩东京热无码人妻 | 国产午夜无码片在线观看影院 | 成人黄色一级毛片久久 | 国产精品日本人妖 | 高清性色生活片试看 | 欧美日韩无线码在线观 | 国产第一在 | 日本老司机午夜福利视频 | 亚洲精品无码av中文字幕 | 国产suv| 欧美精品成人a在线观看 | 无码不卡在线观看 | 91网红精品| 国产freesexvide | 亚洲视频在线网 | 亚洲日本无码一区二区三区 | 中文字幕乱码字幕在线视频 | 国产一区二区三区在线观看免费 | 国产在线精品一区二区夜色 | 无码国产69精品久久久久 | 麻豆精品人妻一区二 | 成人毛片18女人毛片免费看视频 | 内射一区二区精品视频在线观 | 毛片成人永久免费视频 | 亚洲成av人片在线观看无码 | 高跟丝袜| 亚洲精品在线视频 | 国产帅男男gay网站视频 | 人人影院 | 99久久久无码国产精精品 | 精品999久久久久久中文字幕 | 成人色站 | 亚洲日韩一区二区三区 | 午夜天堂精品久久久久 | 国产在线观看91精品腿张开 | 丰满孕妇孕交 | 成人免费视屏 | 国产人成无码视频在 | 精品一区二区三区视频在线观看免 | 丰满肥女巨肥bwwbbww | 国产精品乱码一区二区 | 韩国三级hd中文字幕我的女友 | 色综合99久久久无码国产精品 | 人妻精品久久无码区 | 国产亚洲一卡2卡3卡4卡网站 | 无码国产精品一区二区vr | 欧美深夜福利网站在线观 | 自拍偷自拍亚洲精品情侣 | 羞羞网站高清无码在线观看 | 无码人妻精品一区二区三区51 | 99久久er热在这里都是精品66 | 欧美日韩在线在线观看 | 亚洲av无码一区二区三区在线 | 在线亚洲午夜理论av大片 | 欧美日韩国产第 | 自在自线亚洲а | 波多野结衣在线电影天堂 | 国产欧美一区二区三区精品视频 | 精品少妇人妻av无码专区不卡 | 国产高潮视频在线播放 | 国产伦精品一区三区视频 | 香蕉视频草莓视频 | 日本欧美亚洲综合久久久 | 久久www免费人成看片色多多 | 黄色网址在线播放 | 日韩乱码人妻无码中文字幕视频 | 91精品在线播放视频大全在线观看 | 国产免费福利视频一区二区 | 精品国产app | 国产激情精品一区二区三区 | 99久久久免费国产精品 | 国产一级做a爰片在线看免费 | 99爱精品视频公开免费观看 | 亚洲嫩草影院 | 波多野结衣高潮颠抖不停 | 午夜男女刺激爽爽影院 | 精品九九99久久人妻免费 | 国产a级毛片久久久久久精品 | 精品偷拍 | 精品区一区二区三 | 97超频在线视频免费观看 | 欧美成人精品福利视频 | 国产欧美精品一区二区色综合 | 欧美色欧美亚洲高清在线视频 | 亚洲成人在线一区二区 | 少妇熟女视频一区 | 午夜福利国产在线 | 爱豆传媒免费全集在线看 | a级毛片免费观看在线播放 a级毛片免费视频无码 | 91免费人成网站在线观看18 | 少奴人妻久久中文字幕 | 最新国产在线拍揄自揄视频 | 另娄专区欧美制服在线亚洲欧 | 亚洲视频一区二区三区在线看 | 日本人视频国产一区二区三区 | 91精品国产秘入口在线 | 亚洲成av人在线观看片 | 波多野结衣爽到高潮大喷 | 在线观看国产污的网站 | 国产精品午夜理论片在线播放 | 97久久久久人妻精品区一 | 精品乱码| 国产免费av片在线播放 | av黄色网站在线观看 | 国产曰批视频 | 亚洲国产欧美日本视频 | 精品无码国产一区二区入口91 | 国产精品黄大片在线播放 | 精品国产综合成人亚洲区 | 亚洲成a人片在 | 91精品国产麻豆91久久久久久 | 国产成人精品高清在线观看99 | 国产午夜精品一区二区三区嫩草 | 99久久国产综合精品女同 | 国产精品白嫩极品久久久久 | 欧洲性久久精品 | 午夜宅宅伦电影网 | 欧美一区二区三区视视频 | 国产手机在线αⅴ片无码观看 | 亚洲一区无码精品色 | 亚洲视频一区二区在线观看 | 亚洲精品永久在线观看 | 国产伦子伦一 | 日韩欧美电影在线 | 亚洲中文字幕网资源站 | 日韩精品一区二区三区费暖暖 | 国产精品成人啪 | 91热久久免费视频精品欧洲 | 天美传媒麻豆精东蜜桃 | 91免费视频观看 | 欧美精品国产精品日韩系列 | 在线美剧天堂 | 国产成人av综合久久 | 精品一二三区免费视频 | 91精品国产麻豆国产自产 | 中文字幕无码乱码人妻系列 | 午夜理论片最新午夜理论剧 | 深夜福利网站app | 麻豆成人久久精品二区三区免费 | 久久9精品久久久 | 精品国产国产自在线观看 | 欧美成人四级剧情在线播放 | 亚洲日韩高清在线亚洲专区2025 | 午夜无码在线免费网站 | 特级毛片a级毛片免费观看网站 | 一级特黄国产免费大片 | 国产成人免费av片在线观看 | 亚洲国产在线精 | 色综合热无码热国产 | 中文字幕免费大全日本一片 | 国产福利影院 | 韩国三级电影免费看 | 动漫3d精品一区二区三区乱码 | 在线观看av网站永久免费观看 | 亚洲va中文字幕久久无码一区 | 99久久综合狠狠综合久久 | 天天做日日做天天添天天欢公交 | 99精品久久久久精品双飞 | 国产色啪a∨在线看精品 | 中文字幕av无码专区第一页 | 国产精品国产精 | 91麻豆精品国产一区色欲 | 91精品国产秘入口在线 | 日本一区二区精品理论电影 | 99久久国产综合精麻豆 | 国产免费午夜福利片在线试看 | 欧美一区二区三区播放 | 不卡国产精品 | 国产成人精品无码免费视频 | av小簧片在线亚洲天堂在线 | 精品国产美女福到在线直播 | 亚洲一区二区三区四区五区六区 | 尤物精品无码视频专区 | 日韩精品一区二区三区中文在 | 国产亚洲色视频在线 | 国产亚洲欧美高清在线观看 | 欧美精品在线一区二区三区 | 国产第一页久久亚洲欧美国产 | 中文字幕亚韩在线综合 | 国产在线精品一区免费香蕉 | 黄色网址在线免费看 | 好吊色欧美一区二区三区四区 | 日本高清不卡中文字幕网 | 蜜臀av国内精品久久久 | 国产欧美精品系列在线 | 亚洲精品影院在线观看 | 毛片va一区二区三区 | 欧美日韩加勒比精品一区 | 人妻少妇精品无码专区不卡 | 日本免费精品一区二区三区 | 国产精品扒开腿内射爽爽 | 日韩一区二区六区中文字幕 | 波多野结衣亚洲av无码无在线观看 | 成本人在线观看视频网站 | 亚洲日本久久精品 | 综合国产精品私拍国产在线 | 国产精品一级免费av | 91传媒制片厂制作网 | 一区二区高清 | 国产vs久久 | 国产在线高清理伦片a | 亚洲熟女片嫩草影 | 亚洲aⅴ无码码潮喷在线观看 | 日本精品 | 精品一区二区三区蜜桃hd | 在线观看av官网 | 婷婷久久青草99热福利 | 国产午夜福利精品一 | 三区四区 | 亚洲欧美黑人深猛交群 | 欧美人成国产91视频 | 99re视频热这里只有精品 | 无码国产精品午夜福利v | 加勒比东京热在线观看 | 中文精品无码中文字幕无码专区 | 国产在线播放线99视频大全 | 精品国产麻豆 | 极品黑色丝袜自慰喷水自慰 | 久久99精品国产99久久 | 亚洲三级片在线观看 | 国产一区二区粉嫩在线观看 | a篇片在线观看网站 | 另类专区精品 | 国产亚洲日韩av在线播放 | 亚洲日韩av无码一区二区三区 | 高潮未删减手机高清在线观看 | 亚洲一级黄色在线观看 | 欧美高清在线观看海外剧在线观看 | 91成版人在线观看入口 | 97色伦图片97色伦图影院久久 | 亚洲成a人一区二区三区 | 国产欧美日韩综合精品二区 | 东京热app| 日韩中文字幕一区二区不卡 | 成全高清 | 91字幕网安卓版下载v1.4.2 | 国产亚洲国产av网站在j | 国产精品爆 | 亚洲视频一区二区三区在线看 | 97色伦午夜国产亚洲精品 | 亚洲国产一区二区a毛片 | 午夜视频体内射.c | 加勒比东京热无码中文字幕 | 97久久精品人妻人人搡人人玩 | 亚洲午夜国产精品无码老牛影视 | 制服丝袜| 黄色视频免费亚洲 | 在线日韩av免费永久观看 | 色欧美精品 | 深夜特黄a级毛片免费看 | 欧美曰韩一 | 精品少妇ay一区二区三区 | 亚洲国产精品在线观看 | 国产爱导航在线 | 岛国大片精品视频免费在线播放 | 精品女视 | 国产在线观看免费 | 国产成年网站v片在线观看 国产成年无码av片在线 | 日韩区欧美国产区 | 黄色视频在线观看免费h片 黄色视频在线免费观看 | 午夜毛片不卡免费观看视频 | 国产在线观看私人影院 | 爱豆传媒港台综艺 | 亚洲国产成人精品综合av | 成年女人免费视频播放体验区 | 99久久精品国产一区二区 | 日本中文字幕一二区视频 | 国产日韩亚洲欧美精品专区 | 国产老熟女乱伦一区二区三区 | 中文字幕亚洲乱码高清 | 国产在线无码视频观看草草视频 | 亚洲av无码乱码在线观看 | 亚洲中文字幕无线无码 | 国内精品视频成人一区二区 | 国产无遮挡裸露视频免费 | 精品熟女视频一区二区三区 | 娇小枯瘦日本xxxx | 99久久亚洲综| 一级做a爰片久久毛片免费看 | 国产午夜成人无码免费 | 老司机成人永久精品视频 | 国产av永久无码天堂影院 | 一级片好看中文 | 91短视频纯净版下载v6.14.0 | a片在线 | 国产精品蜜桃在线观看 | 欧洲精品精| 操女优国产成人综合色在线观看网站 | 亚洲av不卡在 | 国产h片量多网站 | 国产白丝在线观看 | 91视频网址 | 亚洲日本中文字幕天天更新 | 国产在线观看精品一区二区三 | 国产色无码精品视频免费乱 | 亚洲av无码av制服另类专区 | 狠狠躁日日躁夜夜躁2025麻豆 | 免费无码国产白丝视频 | 波多野结衣无码高清在线观看 | 亚洲午夜精品成人毛片 | 红杏亚洲影院一区二区三区 | 天天操操操操 | 国产综合久久久久久鬼色 | 亚洲欧美日韩另类丝袜一区 | 福利姬液液酱喷水网站在线观看 | 午夜性福利 | 国产一道精品视频一区二区三区 | 亚洲国产精品婷婷久久 | 国产欧美成人精品 | 超薄丝袜足j好爽在线观看 超薄丝袜足j一区二区 | 内射高潮享受视频在线观看 | 国产ts系列紫 | 无码不卡av五月天 | 丰满人妻中伦妇伦精品久久 | 亚洲国产私拍精品国 | 亚洲av永久天堂在线观看 | 四虎欧美在线观看免费 | 99久久久无码国产精品秋霞网 | 97超碰人人澡人人爱 | 国产精品揄拍100视频 | av性天堂网 | 91免费视频网址 | 久久国产成人午夜av影院 | 爱豆传媒免费全集在线看 | 韩国三级在线观看中文字幕 | 国产三级在线观看专区 | 国产伦精品一区二 | 无套内射极品少妇chinese | 国产午夜福利免费看片 | 97热久久免费频精品99国产 | 超碰亚洲欧美一区二区 | 无码日韩av一区二区三区 | 国产日韩欧美视频在线 | 国产精品日韩精 | 国产a级三级三级三级 | 亚洲欧美一区二区三区蜜芽 | 伊人影视网 | 蜜臀av一区二区三区久久 | 午夜天堂一区人妻 | 无码人妻精品一区二区三区秋 | 亚洲日韩高清在线亚洲专区2025 | 特级做a爰片毛片 | 99久久国产综合精品五月天喷水 | 99热这里只有精品首页精品 | 久久99 | 日韩一区二区三区免费播放 | 日本黄色片视频 | 国产剧情三级片在线观看 | 91麻豆精品国产自产在线观看一区 | 亚洲免费人成视频在线观看 | 日韩在线欧美精品一区二区 | 亚洲中文字幕无码av永久 | 国产亚洲精品久久久久久无几年桃 | 国产成人精品免费视频大全麻 | 女子口述第一次被按摩师进入身体 | 精品国产一 | 日韩精品久久久毛片一区二区 | 成人免费视频网站 | 亚洲精品第一国产综合精品 | 亚洲ⅴ国产v天堂a无码二区 | 91精品国产自产91精品 | 国产欧美日本在线观看 | 九月婷婷人人澡人人 | 黄色视频在线 | 国产刺激对白国产情侣 | 精品动漫一区二区三区 | 91精品啪在线观看国产91九色 | 亚洲一区二区三区高清av | 精品国产鲁一鲁一区二区更新时间 | 亚洲av无码国产精品麻豆天美 | 日本欧美一区二区三区在线观看 | 国产99久 | 精品啪在线观看国产老湿机 | 91全国免费视频精品 | 亚洲av成人片色在线观看 | 人人操人人摸一区二区三区不卡 | 中文字幕人妻无码视频 | 狠狠噜天天噜日日噜 | av午夜久久蜜 | 丰满精品人妻一 | 亚洲аv天堂手机版在线观看 | 日韩一线无码av毛片免费 | 日韩精品熟女一区二区三区中 | 99re在线视频精品观看9 | 老司机亚洲精品影院无码 | 精品久久久久久国产潘金莲 | 成a人片| 欧美巨鞭大战丰满少妇 | 深夜久久aaaaa级毛片免费看 | 国产麻豆不卡 | 午夜私人影院 | 黄色a级国产 | 国内精品久久久久久久久蜜桃 | 日韩亚洲欧美高清一区二区久 | 精品国产自在久久 | 亚洲国产精品日韩av不卡在线 | 国产精品亚洲аv无码播放 国产精品亚洲成在人线 | 激情成人 | 亚洲国产一区二区三区 | 人人妻人人澡人人爽欧美一区九九 | 国产精品免费视频一区二区三区 | 97人妻免费视频 | 偷拍激情视频一区 | 亚洲午夜无码片在线观看影院百度 | 在线观看国产精品乱码app | 欧美日韩性高爱潮视频 | 国产av永久福利资源网站 | 午夜尤物超在线视频 | 精品国产一卡2卡3卡二 | 日韩人妻无码潮喷中文视频 | 欧洲一曲二曲三曲视频 | 欧美成人一级视频 | 中文无码在线观看可乐视频 | 亚洲欧美久久美女香蕉视频 | av男人的天堂在线观看第三 | 少妇爆乳无码av无码波霸 | 91精品无人区麻豆乱码4区开放时间 | 精品国产一区二区三区四区色欲 | 在线国产亚洲91 | 91精品中文字幕 | www深夜成人网站下载麻豆 | 丰满少妇午夜寂寞影院 | 神马午夜福利电影 | 亚洲精品无码久久久久久 | 国产一区二区在线视频 | 精品自拍视频在线观看电影 | 成年男女免费视频网站 | 亚洲成av人片在线观看ww | 中文字幕人妻无码视频 | 人妻无码aⅴ中文字幕视频 人妻无码aⅴ中文字幕系列 | 亚洲成av片中文字幕在线观看 | 国产精品乱码一区二区 | 国产精品一区二区尿失禁 | 91人妻精品无码ww九色 | 亚洲无码精品在线观看 | a级国产乱理论片在 | 亚洲最大av无码网址 | 中文字幕不卡二区亚洲 | 91丝袜精品久久久久久无码人妻 | 毛片大全在线 | 日本道vs高清一区二区三区 | 桃色在线观看 | 91精品久久香蕉国产线看观看 | 97高清国语自产拍 | 91久久香蕉囯产熟女线看 | 国产精品爆乳奶水无码视频 | 东京热人妻av中文系列 | 国产一区二区三区四区五区tv | 欧美级在线现免费观看不卡 | 很黄很色很爽的三级视频 | 国产玖玖在线观看 | 精品欧美一区二区三区 | 成人免费播放视频777777 | 精品国产影片在线观看 | 国产毛片精品 | 国产美女被干 | 一区二区国产高清视频在线 | 国产精品影院 | 囯产精品一区二区三区线 | 在线播放的午夜网 | 天天躁日日躁狠狠躁欧美老妇小 | 91精品国产色综合久 | 在线观看视频三级国产 | 亚洲av无码精品色午夜 | av在线亚洲男人的天堂 | 中文字幕精品aⅴ内射夜夜 中文字幕精品久久久久久 中文字幕精品久久久久人妻 | 色老板在线视频一区二区 | 中文字幕精品久久久人妻 | 午夜精品久久久久久久影视 | 婷婷久久综合中文久久蜜桃av | av天堂精品久久久久 | 99re在线视频精品观看9 | 丰满人妻跪趴高撅肥臀最 | 精品国产亚洲一区二区三区 | 精品自拍高清 | 国产精彩视频在线观看免费蜜芽 | 在线美剧天堂 | 91超碰中文字幕久久精品 | 三级好看 | 国产a久久精品一区二区三区 | 极品白嫩一线天美女mp4 | 最新国产乱人伦偷精品免费网 | 99久久精品国产区二区三区日韩 | 国产视频一区二区三区四区五 | 久久96热在精品国产三级 | 91久久高清国语自产拍 | 人人妻人人狠人人爽 | 国产精品人妻一区二区三区四 | 日韩美国国产一级毛片 | 欧美成人三级经典中文字幕 | 91久热欧美极品第一页 | 欧美日韩国产成人在线观看 | 一区二区视频在线观看 | 91游游戏中心官网手游最新版下载 | 99国内精品久久久久久久 | 国产又爽又 | 97久久久久人妻精品专区 | 麻豆影视在线播放 | 日本一品道无码免费专区在线观看 | 亚洲av无码精品无码麻豆 | 国产精品巨作无遮拦 | 亚洲av无码潮喷在线观看 | 午夜男女视频一区二区 | 色欲天天久久久久 | 人妻中文字幕二区 | 国产精品欧美一区喷水 | 成a人片亚洲日本久久 | 亚洲综合五月天国产av | 黄视频在线观看无遮挡 | 高清无码一区波多野结衣x99av | 日韩成人精品视频国产在线观看成人 | 91视频一区无码 | 无码中字av | 人人操人人干人人玩 | 国产高潮抽出娇喘喷水视频在线 | 一区二区三区国产精品保安 | 亚洲av无码久久精品蜜桃播放 | 日本人做爰 | 日韩人妻无码一区二区三区久久99 | 国产午夜亚洲精品三区 | 国产成人精品高清在线观看99 | 国产精品免费视频一区二区三区 | 亚洲精品成av人片天堂无码 | 欧美性色欧美a在线在线播放 | 国产v亚洲v天堂无码 | 精品人妻码一区二区三区 | 亚洲av无码av吞精久 | 99久久久精品免费观看国产 | 人体内射精一区二区 | 日韩av不卡在线观看五月 | 精品无码人妻 | 成人高清无码在线观看 | 精品国产免费第一区二区 | 深夜国产一区二区三区在线看 | 国产人成在线观 | 欧美成人四级剧情在线播放 | 韩国欧美国产 | 亚洲av永久无码野狼在线观看 | 欧美精品1卡二卡三 | 91电影| 国产区精品高清在线观看 | 日韩av无码久久精品免费 | 亚洲欧美精品乱 | 国产精品欧美视频另类专区 | 国产精品中文久久久久久久 | 国产精品亚洲av色欲在线观看 | 黄a大片av永久免费 黄瓜视频在线观看 | 99久久久久国 | 亚洲熟女www一区二区三区 | 国产女人叫床高潮大片 | 九一国产精品视频 | 亚洲成av人片在线观看不卡 | 亚洲精品国产精品乱码 | 亚洲第一色片曰本毛片 | 东京热久久久无码 | 成人夜色视频网站在线观看 | 天天操天天干免费观看 | 国产色无码精品视频免费乱 | 国产精品激情综合五月天中文字幕 | 日韩av片无码一区二区不卡电影 | 欧美三级私人影院一区二区 | 亚洲国产精人品久久久久久 | 亚洲国产成人久久综合一 | 亚洲最大无码av网站 | 国产福利萌白酱精品tv一区 | 91成人在线日本中文字幕免费 | 日韩精品久久久免费观看 | 很很鲁很很在线视频97 | 国产精品国产名人在线 | 91国精产品自偷自偷综合 | 国产在线播放精品 | 午夜毛片不卡免费观看视频 | 久久高清自拍中文 | 国产思思精品视频 | 精品人妻无码一区二区三区四川人 | 日韩欧美亚洲国产ay | 午夜a级理论片在线 | 亚洲av无码一区二区三区dv | 成人黄色免费观看 | 日本免费三片在线播放 | 国产乱人伦av在线a 国产乱人伦av在线a麻豆 | 国产99在线a视频 | 黄色a级国产免费 | 成年人视频公开 | 精品伊人久久大线蕉色首 | 午夜福利视频合集4000手机 | 国产精品激情综合五月天中文字幕 | 欧美日韩国产高清 | 亚洲精品xxx| 国产精品一区二区三区四区五区 | 亚洲精品国产女主播在线观看 | 少妇熟女视频一区 | 91久久亚洲精品影院 | 色天天躁夜夜躁天干天干 | 91精品国产乱 | 亚洲av永久无码精品视色密 | 东京热人妻欧美一区2区3区 | 国产成人精品影院 | 午夜福利在线视频性色 | 国产精品v片在线观看 | 91视频管网 | a级国产视频 | 91精产品自偷自偷综合官网版下载 | 97色伦综合在线欧美视频 | 超级九七视频在线观看 | 欧洲人妻丰满av无码久久不 | 91国内精品久久久久毛片精华液 | 国产乱色精品成 | 国产免费一区二区三区香蕉精 | 国产强奷在线墦放免费不卡 | 久久97超碰色中文字幕东京 | 国产人妻精品一区二区三区不卡 | 99久久天天躁狠狠躁夜夜躁 | 国产成人aⅴ在线免费观看 国产成人aaaaaaa毛片 | 国产亚洲精品在线观看 | 国产高清在线91 | 精品国产一区二区三区四不卡在线 | 亚洲午夜国产精品无码老牛影视 | 午夜福利一 | 自拍户外精品 | 熟女综合一区二区 | 国产亚洲一区在线观看一区二区 | 毛片无码一区二区三区a片视频 | 无码中文影视三级 | 99久久精品国产免费看 | 欧美日韩一区二区三区四区在线观看 | 91嫩草在线| 国产欧美日韩va另类 | 国产一本视频在线播放 | 日本精品 | 国产中文字幕乱人伦在线观看 | 国产片av国语在线观看手机版 | 91视频入口| 国产女主播喷水视频在线观看 | 国产一区二区三区四区五区tv | 国产成人无码精品一区在线观看 | 亚洲精品无码激情av | 亚洲无码在线观看一区二区 | 日本中文字幕一区在线观看 | 99热成人精品 | 国产成人综合亚洲 | 中文字幕无码乱码人妻系列 | 免费无码av片在线观 | 国产精品成人无码视频 | 日韩国产精品一区二区 | 偷自拍亚洲视频在线观看99 | 国产乱人 | 亚洲av无码之日韩精品 | 中文字幕日韩欧美一区二区 | 伊人色综合网一区二区三区 | 日本一区二区三 | 香蕉久久aⅴ一区二区三区 香蕉久久av一区二区三区 | 日本一区视频在线观看 | 亚洲国产精品无码久久 | 午夜婷婷一夜 | a级a片少妇高潮喷水片 | 国产精品毛片无码一区二区蜜桃 | 国产精品永久免费 | 麻豆视频网站男人的天堂 | 欧美性做爰大片免费看软件男组长 | 亚洲精品中文字幕不卡在线 | 精品久久一区二区三区av | 白丝爆浆18 | 亚洲午夜无码一级 | 无码精品人妻一区二区三区免费 | 精品人妻| 亚洲av成人一区二区三区高清 | 亚洲国产美女主播在线观看 | 久久99久久久无码国产精品 | 可以看av的网址 | 亚洲欧美另类日韩一区 | 成人性生交大片免费看96 | 日日做夜狠狠爱欧美黑人 | 欧美人妻一区二区三区 | 人妻熟妇乱又伦精品视频 | 国产v片在线观看精品亚洲 国产v日本v欧美v一二三四区 | 国产一本一道久久香蕉 | 无码永久免费av网站中文 | 日韩av片高清在线观看 | 亚洲国产日韩欧美综合字幕 | 久久高清内射无套 | 人人曰人人做人人 | 97伦理影院[天蚕土豆] | 天美传媒免费观看一二三在线 | 色偷偷91久久综合噜噜噜 | 天美传播媒体网站 | 久久99免费 | 午夜视频在线观看免费观看在线观看 | 天天操操操| 99国产精品永 | 国产精品一区二区av日韩在线 | 无码国产精品视频一区二区三区 | 国产欧美一区二区樱花在线观看 | 麻豆av免费在线观看 | 无码国产精品一区二区免费式芒果 | av国内精品久久久久影院 | 欧美区区二区视频在线欧成在 | 91精品手机国产在线播放 | 91精品国产高清久久福利 | 无码人妻精品一区二区三区在 | 97制片厂爱豆传媒视频详情介绍 | 国产精品成人av无码久久 | 少妇太爽了在线观看 | 97久久精品无码一区二区欧美人 | 日本高清视频色wwwwww色 | 亚洲精品国产自在现线99这里 | 亚洲国产综合自在线婷婷 | 一级做a爰片久久毛片免费看 | 亚洲aⅴ无码码潮喷在线观看 | 天天爽爽夜夜爽国产精品欧 | 无码欧精品亚洲日韩一区 | 91在线视精品在亚洲 | 欧美性xxxx极品hd欧美风情 | 色妞www精品视频 | 人人弄狠五月丁 | 惠民福利精品女同一区二区在线观看 | 无码中文字幕人妻在线一区二区三区 | 欧美日韩国产一级久久忘忧草 | 亚洲电影激情五月激情 | h无码精品动漫在线观看 | 97久久天天综合色天天综合色hd | 精品亚洲成a人在线观看青青 | 国产内射爽爽大片视频社区在线 | 对白在线播放 | 国产成人福利美女观看 | 91拍拍在线观看 | 精品午夜久久福利大片免费 | 国产福利一区二区三区在线 | 三上悠亚精品二区在线观看 | 欧美成人片 | 国产综合区 | 丰满人妻一区二区三区视频53 | 日韩成人 | av免费网址国产精品 | 欧美成人精品手 | 国产精品亚洲高清 | 中文字幕精品一区二区三区视频 | 中文字幕一区二区无码 | 中文字幕日韩欧美一区二区三区在线 | 日韩av激情中文在线观看 | 99久久精品国产 | 亚洲国产精品và在线看 | 国产成人免费av片在线观看 | 国产免费aⅴ大片在线观看 国产免费aⅴ片在线观看麻豆 | 99欧美午夜一区二区福利视频 | 中文字幕无码免费久久91 | 国产女白丝脚交视频播放 | 91精品免费久久久久久久久 | 亚洲午夜理论片在线观看 | 69国产成人综合久久精品 | 久久99国产精品二区 | 亚洲不卡av影片在线播放 | 国产啪精品视 | 日韩免费一区 | 国产另类ts人 | 91影视免费版下载 | 国产av旗袍丝袜精品无码麻豆 | 国产黄毛片久久久久久 | 国产三级精品专区欧美激情 | 国精品无码一区二区三区在线蜜臀 | 国产男女猛烈无遮挡免费视频网站 | 国产三级精品三级在线观看 | 欧美牲交a欧美牲交aⅴ | 一级欧美伦奷 | 亚洲av无码国产精品色午夜软件 | 欧美成人三级经典中文字幕 | av电影在线播放 | 欧美日韩在线观看 | 国产成人久久综合区 | 日韩人妻无码精品久久 | 亚洲熟妇男女啪 | 97人人模人人爽人人 | 国产小视频2025 | 国产精品白丝av嫩草影院 | 亚洲午夜精品一级在线播放放 | 国产一级片观看 | 亚洲av片不卡无码久 | 国产在线播精品第三 | 91游游戏中心官网手游最新版下载 | 99久免费精品视频在线观看 | 少妇高潮无乱码高清在线观看 |