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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java 修改 枚举类字段_枚举枚举和修改“最终静态”字段的方法

發布時間:2023/12/3 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 修改 枚举类字段_枚举枚举和修改“最终静态”字段的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java 修改 枚舉類字段

在本新聞通訊中,該新聞通訊最初發表在Java專家的新聞通訊第161期中,我們研究了如何使用sun.reflect包中的反射類在Sun JDK中創建枚舉實例。 顯然,這僅適用于Sun的JDK。 如果需要在另一個JVM上執行此操作,則您可以自己完成。

所有這些都始于愛丁堡的Ken Dobson的電子郵件,該電子郵件向我指出了sun.reflect.ConstructorAccessor的方向,他聲稱可以將其用于構造枚舉實例。 我以前的方法(通訊#141)在Java 6中不起作用。

我很好奇為什么Ken要構造枚舉。 這是他想使用它的方式:

public enum HumanState {HAPPY, SAD }public class Human {public void sing(HumanState state) {switch (state) {case HAPPY:singHappySong();break;case SAD:singDirge();break;default:new IllegalStateException("Invalid State: " + state);}}private void singHappySong() {System.out.println("When you're happy and you know it ...");}private void singDirge() {System.out.println("Don't cry for me Argentina, ...");} }

上面的代碼需要進行單元測試。 你發現錯誤了嗎? 如果沒有,請使用細梳再次遍歷代碼以嘗試找到它。 當我第一次看到這個時,我也沒有發現錯誤。

當我們產生這樣的錯誤時,我們應該做的第一件事就是進行一個顯示它的單元測試。 但是,在這種情況下,我們無法使default情況發生,因為HumanState僅具有HAPPY和SAD枚舉。

Ken的發現使我們可以使用sun.reflect包中的ConstructorAccessor類來創建枚舉的實例。 它涉及到以下內容:

Constructor cstr = clazz.getDeclaredConstructor(String.class, int.class ); ReflectionFactory reflection =ReflectionFactory.getReflectionFactory(); Enum e =reflection.newConstructorAccessor(cstr).newInstance("BLA",3);

但是,如果僅執行此操作,則最終會出現ArrayIndexOutOfBoundsException,這在我們看到Java編譯器如何將switch語句轉換為字節代碼時才有意義。 以上面的Human類為例,下面是反編譯后的代碼(感謝Pavel Kouznetsov的JAD ):

public class Human {public void sing(HumanState state) {static class _cls1 {static final int $SwitchMap$HumanState[] =new int[HumanState.values().length];static {try {$SwitchMap$HumanState[HumanState.HAPPY.ordinal()] = 1;} catch(NoSuchFieldError ex) { }try {$SwitchMap$HumanState[HumanState.SAD.ordinal()] = 2;} catch(NoSuchFieldError ex) { }}}switch(_cls1.$SwitchMap$HumanState[state.ordinal()]) {case 1:singHappySong();break;case 2:singDirge();break;default:new IllegalStateException("Invalid State: " + state);break;}}private void singHappySong() {System.out.println("When you're happy and you know it ...");}private void singDirge() {System.out.println("Don't cry for me Argentina, ...");} }

您可以立即看到為什么要得到ArrayIndexOutOfBoundsException,這要歸功于內部類_cls1。

我第一次嘗試解決此問題并沒有得到一個不錯的解決方案。 我試圖在HumanState枚舉中修改$ VALUES數組。 但是,我只是擺脫了Java的保護性代碼。 您可以修改final字段 ,只要它們是非靜態的即可。 這種限制對我來說似乎是人為的,因此我著手尋找靜態最終領域的圣杯。 再次,它被隱藏在陽光反射的房間里。

設置“最終靜態”字段

設置final static字段需要幾件事。 首先,我們需要使用法線反射獲取Field對象。 如果將其傳遞給FieldAccessor,我們將退出安全代碼,因為我們正在處理靜態的final字段。 其次,我們將Field對象實例內的修飾符字段值更改為非最終值。 第三,我們將經過修改的字段傳遞給sun.reflect包中的FieldAccessor并使用它進行設置。

這是我的ReflectionHelper類,可用于通過反射設置final static字段:

import sun.reflect.*; import java.lang.reflect.*;public class ReflectionHelper {private static final String MODIFIERS_FIELD = "modifiers";private static final ReflectionFactory reflection =ReflectionFactory.getReflectionFactory();public static void setStaticFinalField(Field field, Object value)throws NoSuchFieldException, IllegalAccessException {// we mark the field to be publicfield.setAccessible(true);// next we change the modifier in the Field instance to// not be final anymore, thus tricking reflection into// letting us modify the static final fieldField modifiersField =Field.class.getDeclaredField(MODIFIERS_FIELD);modifiersField.setAccessible(true);int modifiers = modifiersField.getInt(field);// blank out the final bit in the modifiers intmodifiers &= ~Modifier.FINAL;modifiersField.setInt(field, modifiers);FieldAccessor fa = reflection.newFieldAccessor(field, false);fa.set(null, value);} }

通過使用ReflectionHelper,我可以在枚舉中設置$ VALUES數組以包含新的枚舉。 這行得通,只是我必須在首次加載Human類之前執行此操作。 這會將競爭條件引入我們的測試用例中。 單獨進行每個測試都可以,但是總的來說它們可能會失敗。 這不是一個好方案!

重新連接枚舉開關

下一個想法是重新連接實際的switch語句的$ SwitchMap $ HumanState字段。 在匿名內部類中很容易找到此字段。 您所需要的只是前綴$ SwitchMap $,后跟枚舉類名稱。 如果枚舉在一個類中切換了幾次,則內部類僅創建一次。

我昨天寫的其他解決方案之一檢查了我們的switch語句是否正在處理所有可能的情況。 將新類型引入系統后,這對于發現錯誤很有用。 我放棄了該特定解決方案,但是您應該能夠根據稍后將向您展示的EnumBuster重新創建該解決方案。

紀念品設計模式

我最近重新編寫了我的設計模式課程 (警告,該網站可能尚未建立最新的結構–請查詢更多信息),以考慮Java的變化,丟棄一些過時的模式并介紹我以前排除的一些。 Memento是“新”模式之一,通常與撤消功能一起使用。 我認為這是一個很好的模式,可以用來在我們努力測試不可能的案例的努力中消除對枚舉的損害。

出版專家通訊給我某些自由。 我不必解釋我寫的每一行。 因此,事不宜遲,這里是我的EnumBuster類,它使您可以創建枚舉,將它們添加到現有的values []中,從數組中刪除枚舉,同時保留您指定的任何類的switch語句。

import sun.reflect.*;import java.lang.reflect.*; import java.util.*;public class EnumBuster<E extends Enum<E>> {private static final Class[] EMPTY_CLASS_ARRAY =new Class[0];private static final Object[] EMPTY_OBJECT_ARRAY =new Object[0];private static final String VALUES_FIELD = "$VALUES";private static final String ORDINAL_FIELD = "ordinal";private final ReflectionFactory reflection =ReflectionFactory.getReflectionFactory();private final Class<E> clazz;private final Collection<Field> switchFields;private final Deque<Memento> undoStack =new LinkedList<Memento>();/*** Construct an EnumBuster for the given enum class and keep* the switch statements of the classes specified in* switchUsers in sync with the enum values.*/public EnumBuster(Class<E> clazz, Class... switchUsers) {try {this.clazz = clazz;switchFields = findRelatedSwitchFields(switchUsers);} catch (Exception e) {throw new IllegalArgumentException("Could not create the class", e);}}/*** Make a new enum instance, without adding it to the values* array and using the default ordinal of 0.*/public E make(String value) {return make(value, 0,EMPTY_CLASS_ARRAY, EMPTY_OBJECT_ARRAY);}/*** Make a new enum instance with the given ordinal.*/public E make(String value, int ordinal) {return make(value, ordinal,EMPTY_CLASS_ARRAY, EMPTY_OBJECT_ARRAY);}/*** Make a new enum instance with the given value, ordinal and* additional parameters. The additionalTypes is used to match* the constructor accurately.*/public E make(String value, int ordinal,Class[] additionalTypes, Object[] additional) {try {undoStack.push(new Memento());ConstructorAccessor ca = findConstructorAccessor(additionalTypes, clazz);return constructEnum(clazz, ca, value,ordinal, additional);} catch (Exception e) {throw new IllegalArgumentException("Could not create enum", e);}}/*** This method adds the given enum into the array* inside the enum class. If the enum already* contains that particular value, then the value* is overwritten with our enum. Otherwise it is* added at the end of the array.** In addition, if there is a constant field in the* enum class pointing to an enum with our value,* then we replace that with our enum instance.** The ordinal is either set to the existing position* or to the last value.** Warning: This should probably never be called,* since it can cause permanent changes to the enum* values. Use only in extreme conditions.** @param e the enum to add*/public void addByValue(E e) {try {undoStack.push(new Memento());Field valuesField = findValuesField();// we get the current Enum[]E[] values = values();for (int i = 0; i < values.length; i++) {E value = values[i];if (value.name().equals(e.name())) {setOrdinal(e, value.ordinal());values[i] = e;replaceConstant(e);return;}}// we did not find it in the existing array, thus// append it to the arrayE[] newValues =Arrays.copyOf(values, values.length + 1);newValues[newValues.length - 1] = e;ReflectionHelper.setStaticFinalField(valuesField, newValues);int ordinal = newValues.length - 1;setOrdinal(e, ordinal);addSwitchCase();} catch (Exception ex) {throw new IllegalArgumentException("Could not set the enum", ex);}}/*** We delete the enum from the values array and set the* constant pointer to null.** @param e the enum to delete from the type.* @return true if the enum was found and deleted;* false otherwise*/public boolean deleteByValue(E e) {if (e == null) throw new NullPointerException();try {undoStack.push(new Memento());// we get the current E[]E[] values = values();for (int i = 0; i < values.length; i++) {E value = values[i];if (value.name().equals(e.name())) {E[] newValues =Arrays.copyOf(values, values.length - 1);System.arraycopy(values, i + 1, newValues, i,values.length - i - 1);for (int j = i; j < newValues.length; j++) {setOrdinal(newValues[j], j);}Field valuesField = findValuesField();ReflectionHelper.setStaticFinalField(valuesField, newValues);removeSwitchCase(i);blankOutConstant(e);return true;}}} catch (Exception ex) {throw new IllegalArgumentException("Could not set the enum", ex);}return false;}/*** Undo the state right back to the beginning when the* EnumBuster was created.*/public void restore() {while (undo()) {//}}/*** Undo the previous operation.*/public boolean undo() {try {Memento memento = undoStack.poll();if (memento == null) return false;memento.undo();return true;} catch (Exception e) {throw new IllegalStateException("Could not undo", e);}}private ConstructorAccessor findConstructorAccessor(Class[] additionalParameterTypes,Class<E> clazz) throws NoSuchMethodException {Class[] parameterTypes =new Class[additionalParameterTypes.length + 2];parameterTypes[0] = String.class;parameterTypes[1] = int.class;System.arraycopy(additionalParameterTypes, 0,parameterTypes, 2,additionalParameterTypes.length);Constructor<E> cstr = clazz.getDeclaredConstructor(parameterTypes);return reflection.newConstructorAccessor(cstr);}private E constructEnum(Class<E> clazz,ConstructorAccessor ca,String value, int ordinal,Object[] additional)throws Exception {Object[] parms = new Object[additional.length + 2];parms[0] = value;parms[1] = ordinal;System.arraycopy(additional, 0, parms, 2, additional.length);return clazz.cast(ca.newInstance(parms));}/*** The only time we ever add a new enum is at the end.* Thus all we need to do is expand the switch map arrays* by one empty slot.*/private void addSwitchCase() {try {for (Field switchField : switchFields) {int[] switches = (int[]) switchField.get(null);switches = Arrays.copyOf(switches, switches.length + 1);ReflectionHelper.setStaticFinalField(switchField, switches);}} catch (Exception e) {throw new IllegalArgumentException("Could not fix switch", e);}}private void replaceConstant(E e)throws IllegalAccessException, NoSuchFieldException {Field[] fields = clazz.getDeclaredFields();for (Field field : fields) {if (field.getName().equals(e.name())) {ReflectionHelper.setStaticFinalField(field, e);}}}private void blankOutConstant(E e)throws IllegalAccessException, NoSuchFieldException {Field[] fields = clazz.getDeclaredFields();for (Field field : fields) {if (field.getName().equals(e.name())) {ReflectionHelper.setStaticFinalField(field, null);}}}private void setOrdinal(E e, int ordinal)throws NoSuchFieldException, IllegalAccessException {Field ordinalField = Enum.class.getDeclaredField(ORDINAL_FIELD);ordinalField.setAccessible(true);ordinalField.set(e, ordinal);}/*** Method to find the values field, set it to be accessible,* and return it.** @return the values array field for the enum.* @throws NoSuchFieldException if the field could not be found*/private Field findValuesField()throws NoSuchFieldException {// first we find the static final array that holds// the values in the enum classField valuesField = clazz.getDeclaredField(VALUES_FIELD);// we mark it to be publicvaluesField.setAccessible(true);return valuesField;}private Collection<Field> findRelatedSwitchFields(Class[] switchUsers) {Collection<Field> result = new ArrayList<Field>();try {for (Class switchUser : switchUsers) {Class[] clazzes = switchUser.getDeclaredClasses();for (Class suspect : clazzes) {Field[] fields = suspect.getDeclaredFields();for (Field field : fields) {if (field.getName().startsWith("$SwitchMap$" +clazz.getSimpleName())) {field.setAccessible(true);result.add(field);}}}}} catch (Exception e) {throw new IllegalArgumentException("Could not fix switch", e);}return result;}private void removeSwitchCase(int ordinal) {try {for (Field switchField : switchFields) {int[] switches = (int[]) switchField.get(null);int[] newSwitches = Arrays.copyOf(switches, switches.length - 1);System.arraycopy(switches, ordinal + 1, newSwitches,ordinal, switches.length - ordinal - 1);ReflectionHelper.setStaticFinalField(switchField, newSwitches);}} catch (Exception e) {throw new IllegalArgumentException("Could not fix switch", e);}}@SuppressWarnings("unchecked")private E[] values()throws NoSuchFieldException, IllegalAccessException {Field valuesField = findValuesField();return (E[]) valuesField.get(null);}private class Memento {private final E[] values;private final Map<Field, int[]> savedSwitchFieldValues =new HashMap<Field, int[]>();private Memento() throws IllegalAccessException {try {values = values().clone();for (Field switchField : switchFields) {int[] switchArray = (int[]) switchField.get(null);savedSwitchFieldValues.put(switchField,switchArray.clone());}} catch (Exception e) {throw new IllegalArgumentException("Could not create the class", e);}}private void undo() throwsNoSuchFieldException, IllegalAccessException {Field valuesField = findValuesField();ReflectionHelper.setStaticFinalField(valuesField, values);for (int i = 0; i < values.length; i++) {setOrdinal(values[i], i);}// reset all of the constants defined inside the enumMap<String, E> valuesMap =new HashMap<String, E>();for (E e : values) {valuesMap.put(e.name(), e);}Field[] constantEnumFields = clazz.getDeclaredFields();for (Field constantEnumField : constantEnumFields) {E en = valuesMap.get(constantEnumField.getName());if (en != null) {ReflectionHelper.setStaticFinalField(constantEnumField, en);}}for (Map.Entry<Field, int[]> entry :savedSwitchFieldValues.entrySet()) {Field field = entry.getKey();int[] mappings = entry.getValue();ReflectionHelper.setStaticFinalField(field, mappings);}}} }

該類很長,可能仍然存在一些錯誤。 我是從舊金山到紐約的途中寫的。 這是我們可以使用它來測試人類班級的方法:

import junit.framework.TestCase;public class HumanTest extends TestCase {public void testSingingAddingEnum() {EnumBuster<HumanState> buster =new EnumBuster<HumanState>(HumanState.class,Human.class);try {Human heinz = new Human();heinz.sing(HumanState.HAPPY);heinz.sing(HumanState.SAD);HumanState MELLOW = buster.make("MELLOW");buster.addByValue(MELLOW);System.out.println(Arrays.toString(HumanState.values()));try {heinz.sing(MELLOW);fail("Should have caused an IllegalStateException");}catch (IllegalStateException success) { }}finally {System.out.println("Restoring HumanState");buster.restore();System.out.println(Arrays.toString(HumanState.values()));}} }

現在,此單元測試在前面顯示的Human.java文件中顯示了錯誤。 我們忘記添加throw關鍵字!

When you're happy and you know it ... Don't cry for me Argentina, ... [HAPPY, SAD, MELLOW] Restoring HumanState [HAPPY, SAD]AssertionFailedError: Should have caused an IllegalStateExceptionat HumanTest.testSingingAddingEnum(HumanTest.java:23)

EnumBuster類可以做的更多。 我們可以使用它刪除不需要的枚舉。 如果我們指定switch語句屬于哪些類,則將同時維護這些類。 另外,我們可以還原到初始狀態。 很多功能!

我注銷之前的最后一個測試用例,我們將測試類添加到switch類中以進行維護。

import junit.framework.TestCase;public class EnumSwitchTest extends TestCase {public void testSingingDeletingEnum() {EnumBuster<HumanState> buster =new EnumBuster<HumanState>(HumanState.class,EnumSwitchTest.class);try {for (HumanState state : HumanState.values()) {switch (state) {case HAPPY:case SAD:break;default:fail("Unknown state");}}buster.deleteByValue(HumanState.HAPPY);for (HumanState state : HumanState.values()) {switch (state) {case SAD:break;case HAPPY:default:fail("Unknown state");}}buster.undo();buster.deleteByValue(HumanState.SAD);for (HumanState state : HumanState.values()) {switch (state) {case HAPPY:break;case SAD:default:fail("Unknown state");}}buster.deleteByValue(HumanState.HAPPY);for (HumanState state : HumanState.values()) {switch (state) {case HAPPY:case SAD:default:fail("Unknown state");}}} finally {buster.restore();}} }

EnumBuster甚至保留常量,因此,如果從values()中刪除一個枚舉,它將清空最終的靜態字段。 如果重新添加,它將設置為新值。

肯·多布森(Ken Dobson)的想法以一種我不知道有可能的方式進行反思,真是太有趣了。 (任何Sun工程師都讀過這篇文章,請不要在Java的未來版本中插入這些漏洞!)

親切的問候

亨氏

JavaSpecialists在您公司內提供所有課程。 更多信息 …
請務必閱讀我們有關Java并發性的新課程。 請與我聯系以獲取更多信息。

關于Heinz M. Kabutz博士

自2000年以來,我一直為Java專家社區寫作。這很有趣。 當您與可能會喜歡的人分享本文時,會更加有趣。 如果他們前往www.javaspecialists.eu并將自己添加到列表中,他們可以每個月獲得新鮮的東西。

中繼:這篇文章是Java Advent Calendar的一部分,并根據Creative Commons 3.0 Attribution許可獲得許可。 如果您喜歡它,請通過共享,發推,FB,G +等方式傳播信息! 想為博客寫文章嗎? 我們正在尋找能夠填補所有24個職位的貢獻者,并希望能為您貢獻力量! 聯系Attila Balazs貢獻力量!

參考資料:來自Java日歷日歷博客的JCG合作伙伴 Attila-Mihaly Balazs的“枚舉枚舉和修改“最終靜態”字段” 。

翻譯自: https://www.javacodegeeks.com/2012/12/of-hacking-enums-and-modifying-final-static-fields.html

java 修改 枚舉類字段

總結

以上是生活随笔為你收集整理的java 修改 枚举类字段_枚举枚举和修改“最终静态”字段的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

色婷婷免费视频 | 天天射天天操天天干 | 97夜夜澡人人双人人人喊 | 人人爽人人爽人人片 | 青青看片 | 免费av小说| 国产精品久久在线 | 日日草视频 | 草久电影 | 狠狠色狠狠综合久久 | 国产小视频在线播放 | 国产一线天在线观看 | 国产一区二区久久久久 | 亚洲一区二区精品3399 | 久久www免费视频 | 欧美日一级片 | 免费特级黄色片 | 热99在线视频 | 96视频免费在线观看 | www四虎影院| 97在线看片 | av成人黄色| 国模吧一区 | 在线观看亚洲专区 | 日本精品视频免费 | 三上悠亚在线免费 | 日韩三级成人 | 久久国产日韩 | 亚洲成av人片在线观看无 | 一区二区三区四区不卡 | av天天色 | 最新av中文字幕 | 欧美激情h | 精品国产三级a∨在线欧美 免费一级片在线观看 | 国产美女免费观看 | 欧美午夜精品久久久久久孕妇 | 国产成人黄色片 | 久久久久久久久久久免费 | 欧美一区二区三区不卡 | 日韩深夜在线观看 | 最新日韩视频在线观看 | 亚洲欧洲精品一区 | 日韩欧美一二三 | 九九热免费精品视频 | 欧美日韩亚洲在线观看 | 久草视频在线新免费 | 国产精品美女毛片真酒店 | 综合天天 | 91网站在线视频 | 中文字幕免费观看全部电影 | 久久久久久看片 | 这里只有精彩视频 | 手机成人在线 | 玖玖视频 | 色婷婷狠狠18 | 在线观看岛国 | 一区二区三区在线免费播放 | 久草爱| 三级动图| 久久精品91视频 | 狠狠干天天 | 婷婷综合成人 | 啪啪精品 | 一区二区伦理电影 | 亚洲精品久久久久中文字幕m男 | 激情综合网色播五月 | 不卡中文字幕在线 | 欧美日韩三级 | 欧美伦理一区二区 | 久视频在线 | 99色亚洲| 国产日韩欧美视频在线观看 | aaa免费毛片 | 欧美激情第十页 | 中文字幕专区高清在线观看 | 在线观看黄网 | 日韩精品播放 | 欧美成人91 | 人人干人人模 | 国产福利91精品张津瑜 | 亚洲三级视频 | 很黄很色很污的网站 | 人人爱爱人人 | 亚洲精品三级 | 97免费中文视频在线观看 | 日本久久久久久久久久久 | 97天堂网 | 最近免费中文视频 | 国产精品久久久久久久久久久久午夜 | 国产四虎影院 | 成年人视频在线 | 色综合久久久久综合99 | 99久久久国产精品免费观看 | 九九九九九九精品 | 日本精品中文字幕 | 99精品免费久久久久久日本 | 91在线视频网址 | www.天天成人国产电影 | 日韩精品你懂的 | 99视频一区二区 | 欧美日韩在线观看一区二区三区 | 色婷婷福利 | 天天干 天天摸 天天操 | 亚洲涩涩一区 | 国产精品一区二区三区四区在线观看 | 亚洲不卡123 | 国产日韩中文在线 | 香蕉视频久久久 | 欧美日韩视频在线一区 | 久久久2o19精品 | 国产精品免费在线视频 | 99久久er热在这里只有精品15 | 亚洲精品国产精品国自 | 亚洲综合成人在线 | 操综合 | 不卡电影一区二区三区 | 天天插综合网 | 久久精品一二三区白丝高潮 | 黄色一级大片免费看 | 五月视频| 久久伦理| 国产精品久久片 | 日韩综合一区二区 | 久久影视精品 | 天天色天天搞 | 69久久99精品久久久久婷婷 | 玖玖玖精品 | 99久久er热在这里只有精品15 | 日韩三级视频在线看 | 久久久99精品免费观看乱色 | 日本爱爱片 | 亚洲黄色大片 | 狠狠干综合 | 视频精品一区二区三区 | 天天躁日日躁狠狠躁 | 亚洲成av人片在线观看www | 五月天婷婷丁香花 | a极黄色片| 日本高清久久久 | 在线观看v片 | 在线午夜电影神马影院 | 日韩视频在线不卡 | 在线中文字幕电影 | 五月天综合网站 | 免费看精品久久片 | 婷婷开心久久网 | 91激情在线视频 | 成人黄色在线看 | 九色激情网 | 在线观看电影av | 视色网站 | 麻豆成人在线观看 | 三级在线视频播放 | 久久丁香| 天天射日 | 久久久精品福利视频 | 国产黄色精品网站 | 高清精品在线 | 婷婷天天色 | 精品国产乱码久久久久久久 | 亚洲一区二区高潮无套美女 | 精品一区二三区 | 色免费在线 | 亚洲视频一区二区三区在线观看 | 国产精品99久久久久人中文网介绍 | 免费av在线网站 | 亚洲婷婷综合色高清在线 | 国内精品久久久 | 91精品国自产拍天天拍 | 久久精品网站免费观看 | 丁香婷婷综合网 | 西西44人体做爰大胆视频 | 日韩av片无码一区二区不卡电影 | 日韩精品一区电影 | 久久成人精品电影 | 成人av一级片 | 国产精品a级 | 欧美日韩免费在线观看视频 | 国产精品第52页 | 国产高清av | 天堂视频一区 | 一区二区三区四区在线 | 亚洲天堂网在线视频观看 | 国产视频一区二区三区在线 | 亚洲精品久久久蜜桃直播 | 91一区啪爱嗯打偷拍欧美 | 国产视频一区在线播放 | 欧美午夜视频在线 | 午夜精品电影 | 国产精品v欧美精品v日韩 | 视频三区在线 | 99婷婷狠狠成为人免费视频 | 97在线看| av黄色av| 玖玖玖国产精品 | 人成免费网站 | 欧美一区二区精美视频 | 精品国精品自拍自在线 | 97国产在线视频 | 免费在线中文字幕 | 2023国产精品自产拍在线观看 | 18岁免费看片 | 97精品国产97久久久久久久久久久久 | 欧美日韩超碰 | 久久视频免费看 | 久久久久久久久久久久久9999 | 天天爽天天碰狠狠添 | 伊在线视频 | 在线播放第一页 | 在线性视频日韩欧美 | 久久久久久免费网 | 综合网中文字幕 | 最近2019年日本中文免费字幕 | 91精品国产电影 | 丁香婷婷深情五月亚洲 | 天天操狠狠操 | 91av视频播放| 中文一二区 | 亚洲精品小区久久久久久 | 亚洲视频在线视频 | 亚洲每日更新 | 亚洲免费小视频 | 国产成人333kkk | 激情亚洲综合在线 | 在线视频观看成人 | 超碰资源在线 | 国产高清免费视频 | 久久综合九九 | 九九热在线观看视频 | 国产精品高清免费在线观看 | 国产最新在线 | 婷婷在线精品视频 | 日韩欧美一区二区三区黑寡妇 | 色av色av色av| 干 操 插| 国产美女视频免费 | 国产精品麻豆视频 | 日韩精品久久一区二区三区 | 婷婷色社区 | 亚洲欧美经典 | 久久久久久久毛片 | 欧美电影黄色 | 亚洲欧美国产精品18p | 国产精品婷婷 | 色视频在线免费 | 337p日本欧洲亚洲大胆裸体艺术 | 天天操天天操天天 | 国产在线a | 一区二区三区不卡在线 | 中文字幕在线观看一区 | 久久久久久久久电影 | 又黄又刺激的网站 | 亚洲综合成人婷婷小说 | 69国产盗摄一区二区三区五区 | 在线观看精品黄av片免费 | 91精选在线 | 欧美日韩另类在线 | 亚洲a资源| 久草综合在线观看 | 狠狠操在线 | 久久噜噜少妇网站 | 在线免费高清视频 | 在线看中文字幕 | 日韩在线观看一区二区三区 | 久久tv | 97超碰资源总站 | 99精品免费在线观看 | 久久久午夜精品理论片中文字幕 | 午夜免费在线观看 | 精品中文字幕在线观看 | 久草精品免费 | 69国产盗摄一区二区三区五区 | 一本之道乱码区 | av中文字幕网址 | 亚洲无毛专区 | 最近高清中文在线字幕在线观看 | 天天色成人网 | 超碰成人免费电影 | 亚洲欧美激情插 | 国产黄色大全 | 亚洲精品99久久久久中文字幕 | 国产在线视频资源 | 成人在线免费小视频 | 91精品推荐 | 欧美日韩视频在线观看免费 | 夜夜嗨av色一区二区不卡 | 免费日韩高清 | 欧美一级在线 | 在线天堂日本 | 日日夜夜av | 国产区精品在线 | 天天色天天射天天干 | 欧美精品亚洲精品日韩精品 | 久操视频在线观看 | 日韩欧美在线综合网 | av中文字幕免费在线观看 | 人人搞人人爽 | av电影在线免费观看 | 91亚洲在线观看 | 国产一级免费电影 | 97精品国产91久久久久久久 | 狠狠色狠狠色综合日日92 | 欧美坐爱视频 | 欧美一区二区免费在线观看 | 97av影院| 日韩网站一区二区 | 激情综合色综合久久综合 | 国产精品99久久免费黑人 | 麻豆视频在线免费看 | 国产在线 一区二区三区 | 亚洲成人精品久久久 | 黄色国产成人 | mm1313亚洲精品国产 | 免费av在线网站 | zzijzzij日本成熟少妇 | 精品日韩中文字幕 | 色综合天天视频在线观看 | 一区二区三区免费看 | 精选久久| 精品免费视频 | 中文国产字幕在线观看 | 一级黄色免费网站 | 狠狠色噜噜狠狠狠合久 | 国产成人777777 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | av中文电影| 久久视了 | 麻豆91在线观看 | 黄色a大片 | 97在线观看免费观看 | 夜夜操综合网 | 国产91丝袜在线播放动漫 | 日韩在线高清视频 | 久久官网 | 国产精品白丝jk白祙 | 国产精品久久久久久久午夜 | 色在线亚洲| 一区二区三区四区五区六区 | 亚洲精品一区二区18漫画 | 狠狠操综合网 | 久99久精品视频免费观看 | 香蕉久久国产 | 色综合久久五月 | 91爱爱电影 | 日韩av不卡在线 | 精品国模一区二区三区 | 精品国产乱码久久久久久三级人 | 亚洲一区二区精品视频 | 麻豆 videos | 欧美一区二视频在线免费观看 | 亚洲经典视频在线观看 | av不卡中文字幕 | 四虎影视成人永久免费观看视频 | 精品视频在线播放 | 国产精品毛片一区二区三区 | 高清在线一区二区 | 十八岁以下禁止观看的1000个网站 | 国产在线观看xxx | 国产精品高清一区二区三区 | 免费a v视频 | 国产高清在线a视频大全 | 日韩国产欧美在线视频 | 日韩极品视频在线观看 | 久草国产在线观看 | 91精品视频一区 | 久久电影中文字幕视频 | 久久97超碰 | 国产精品国产亚洲精品看不卡 | 人人爽久久久噜噜噜电影 | 中文字幕精品三区 | 麻豆免费精品视频 | 九九视频精品免费 | 91九色视频在线观看 | 日韩高清免费无专码区 | 国产精品久久婷婷六月丁香 | 日韩深夜在线观看 | 亚洲国产午夜 | 99久久婷婷国产综合亚洲 | 久久超碰网 | 亚洲精品一区二区三区四区高清 | 久草在线| 久草视频在线资源 | 欧美片网站yy | 精品国产成人在线影院 | 日韩一级电影在线观看 | 亚洲综合色激情五月 | 亚洲人成人在线 | av网址aaa| 黄色电影小说 | 91av在线播放视频 | 日韩高清av在线 | 亚洲一级片在线看 | 97理论电影 | 伊人五月婷 | 成人午夜影院 | 国产在线一卡 | 亚洲黄色av网址 | 日韩电影一区二区在线 | 婷婷av资源| 日韩videos| 国产三级国产精品国产专区50 | 成人午夜黄色影院 | 国产亚洲视频中文字幕视频 | 欧美色就是色 | av高清一区 | 99久久精品国产一区二区三区 | 99人成在线观看视频 | 中文字幕一区二区三区乱码不卡 | 激情视频国产 | 中文字幕美女免费在线 | 欧美做受高潮 | 天天综合日日夜夜 | 在线91播放| 激情丁香5月 | 日韩在线视频线视频免费网站 | 五月婷婷狠狠 | 美女视频是黄的免费观看 | 日韩电影一区二区三区在线观看 | 美女国产免费 | 四虎5151久久欧美毛片 | 色多视频在线观看 | 99视频免费看 | 91在线视频观看 | 国产欧美最新羞羞视频在线观看 | 伊人国产视频 | 中文字幕第一 | 永久黄网站色视频免费观看w | 国产精品精品 | 日韩欧美视频一区二区 | 欧美日韩国产三级 | 丁香高清视频在线看看 | 深爱婷婷久久综合 | 丁香婷婷久久久综合精品国产 | 欧美精品色 | 色婷婷骚婷婷 | 不卡电影免费在线播放一区 | 日韩系列 | 天天曰天天爽 | 天天操天天舔天天爽 | 久久精品久久精品久久精品 | 在线国产高清 | 在线免费观看不卡av | 欧美一级片免费在线观看 | 色婷婷色 | 高清久久久久久 | 精品视频免费看 | 亚洲色图色 | 中文字幕乱码电影 | 很黄很污的视频网站 | 成人四虎 | 在线观看视频日韩 | 91人人干 | 久久久亚洲国产精品麻豆综合天堂 | 天天搞天天 | 久久精品中文 | 97精品超碰一区二区三区 | 国产一区二区精 | 国产精品女人久久久久久 | 在线观看mv的中文字幕网站 | 天天爽夜夜爽人人爽一区二区 | 国产不卡av在线播放 | 亚洲第一区精品 | 日韩xxxx视频| 国产97视频 | 日韩特黄一级欧美毛片特黄 | 三级黄色欧美 | www婷婷 | 免费网站看av片 | 99免费在线播放99久久免费 | 在线观看日韩精品视频 | 久久久天堂| 国产日产精品一区二区三区四区 | 999视频在线播放 | 亚洲另类久久 | 久久久久久影视 | 美女网站在线观看 | 成人午夜精品久久久久久久3d | 精品xxx | 色婷婷视频网 | 久久xx视频| 国产精品久久久久久久免费大片 | 免费久草视频 | 国产一卡二卡四卡国 | 色88久久 | 97夜夜澡人人爽人人免费 | 亚洲三级国产 | 看片网站黄 | 丁香色天天 | 91视频高清完整版 | 精品久久久成人 | 色黄www小说 | 国产精品美女久久久久久久网站 | 国产精品成 | 色网av | 午夜久久久精品 | 日本精品久久久一区二区三区 | 狂野欧美激情性xxxx | 香蕉久久久久 | 亚洲精品高清视频 | 欧美日韩精品在线观看视频 | 国产小视频91 | 成人精品一区二区三区中文字幕 | 在线视频观看成人 | 天天曰天天射 | 黄色软件在线观看免费 | 免费在线黄色av | 成人黄大片视频在线观看 | 欧美性黄网官网 | 青青草国产成人99久久 | 久久久精品日本 | 91精品免费在线观看 | 午夜男人影院 | 在线观看免费av网 | 久久精品看 | 日韩在线免费电影 | 五月天电影免费在线观看一区 | 97色综合| 午夜av在线播放 | 国产中文欧美日韩在线 | 日韩精品不卡在线 | 精品一区二区影视 | 麻豆影视在线免费观看 | 日韩av在线资源 | 国产在线精 | 日韩久久久| av天天在线观看 | 在线国产一区二区三区 | 国产在线美女 | 亚洲欧洲精品在线 | 91香蕉亚洲精品 | 伊人天天色 | 久久综合色婷婷 | 亚洲精品视频在线观看视频 | 国产精品一区二区在线观看免费 | 中文字幕av在线免费 | 免费日韩 精品中文字幕视频在线 | 精品中文字幕在线观看 | 欧美九九九 | 久久er99热精品一区二区三区 | 婷婷丁香社区 | 国产成人黄色在线 | 国产专区精品视频 | 色视频成人在线观看免 | 国产精品成人免费一区久久羞羞 | 开心激情婷婷 | 日本mv大片欧洲mv大片 | 久久国产乱| 97超碰在线人人 | 91传媒91久久久 | 午夜av免费看 | 日韩欧美在线综合网 | adc在线观看 | 人人操日日干 | 国产日韩精品一区二区三区 | 91精品久久久久 | 日韩在线观看中文 | 999色视频 | av短片在线观看 | 狠狠狠狠狠操 | 亚州黄色一级 | 国产精品成人久久久 | 黄色a一级视频 | 日本精品一区二区 | 国产精品久久久久av免费 | 日韩欧美一区二区三区视频 | 日本91在线 | 久久精品国产99国产 | 日韩电影在线观看中文字幕 | 日韩免费一区二区三区 | 日本视频久久久 | 成人午夜在线观看 | 婷婷夜夜| 免费看黄20分钟 | 国产v在线观看 | 五月婷婷综合激情 | 天天干天天干天天色 | 99这里都是精品 | 日韩精品一区二区三区水蜜桃 | 国产又粗又猛又黄又爽的视频 | 女人18精品一区二区三区 | 国产在线观看地址 | 一区二区精品久久 | 欧美成年人在线观看 | 国产网站av| 丁香婷婷色 | 日韩电影中文字幕 | 成人免费91 | 少妇性xxx| 深爱五月激情网 | 日韩在线一级 | 性色av香蕉一区二区 | 美女视频久久久 | 国产精品99久久久久久人免费 | av资源在线看 | 久影院| 久草国产在线观看 | 中字幕视频在线永久在线观看免费 | av在线免费播放网站 | 97在线观看免费高清完整版在线观看 | 国产人成看黄久久久久久久久 | 日韩精品最新在线观看 | 五月色婷| 国产亚洲精品久久久久久电影 | 粉嫩一区二区三区粉嫩91 | 国产视 | 丰满少妇久久久 | 91香蕉视频好色先生 | 黄网站色 | 亚洲一区视频免费观看 | 国产精品淫片 | 美女国产 | 久久国产精品视频免费看 | 97视频亚洲 | 91av在线免费视频 | 亚洲狠狠操 | 永久免费观看视频 | 中文字幕永久免费 | 国产精品三级视频 | 很黄很色很污的网站 | 在线观看日韩av | 视频福利在线观看 | 国产精品久久久久久久久久久不卡 | 香蕉影视在线观看 | 五月天激情视频 | 日韩国产高清在线 | 在线观看av国产 | 超碰在线97免费 | 精品国产亚洲日本 | 99re热精品视频| 黄色三级视频片 | 国产成人精品一区二区三区福利 | 久久久久亚洲精品中文字幕 | 国产精品第一页在线观看 | 五月婷婷欧美视频 | 爱射综合 | 天天操天天玩 | 国产美女黄网站免费 | 国产视频一区在线免费观看 | 欧美va天堂va视频va在线 | 久久久在线观看 | 久久精品一二三 | 黄色在线观看网站 | 欧美一区二区在线免费看 | 中文字幕在线一区二区三区 | 国产999久久久 | 十八岁免进欧美 | 久久精品视频99 | 亚洲永久精品一区 | 麻豆果冻剧传媒在线播放 | 国产精品免费久久久久 | 正在播放日韩 | 在线观看中文 | 日韩xxxxxxxxx| 亚洲第一色| 综合久久久 | 超碰999 | 欧美日韩91 | 69xx视频| 国产99久久九九精品 | 九九免费在线视频 | 五月天激情视频在线观看 | 夜夜摸夜夜爽 | 午夜av网站 | 青春草视频 | 国产精品免费观看视频 | 久热色超碰 | 69视频网站 | 亚洲夜夜网 | 网站在线观看日韩 | 91久久久久久国产精品 | 日韩高清精品免费观看 | 麻豆影视在线观看 | 国产最新在线视频 | 操少妇视频 | 久久精品三级 | 亚洲亚洲精品在线观看 | 久久成人国产精品 | 夜夜夜夜操 | 国产精品久久久久久久久久了 | 综合色中文 | 992tv人人草 黄色国产区 | 黄色亚洲大片免费在线观看 | 丁香六月综合网 | 五月婷婷操 | 97在线视频免费看 | 国产一级视频在线免费观看 | 91九色视频观看 | 日日射天天射 | 99福利影院 | 久久国产精品免费视频 | 激情婷婷在线观看 | 黄色在线视频网址 | 五月婷婷六月综合 | 久久这里只有精品久久 | 国产免费黄视频在线观看 | 日本不卡视频 | 欧美日韩国产精品一区二区 | 成人精品国产 | 久艹在线观看视频 | 日本aaaa级毛片在线看 | 婷婷色亚洲 | 免费一级片观看 | 日韩aⅴ视频 | 国产亚洲在线视频 | 国产综合福利在线 | 亚洲亚洲精品在线观看 | 免费亚洲成人 | 最新国产一区二区三区 | 91视频91色| 欧美日韩中文在线观看 | 成人h电影在线观看 | 国产精品成人av在线 | 久久久久一区二区三区四区 | 夜夜夜草 | 亚洲欧美国产精品 | 波多野结衣精品视频 | 久久久午夜精品理论片中文字幕 | 一级成人网 | 欧美天堂久久 | 超级碰视频 | 日本黄色片一区二区 | 四虎永久网站 | 亚洲视频网站在线观看 | 国产不卡视频在线播放 | 成人啪啪18免费游戏链接 | 最新av网址大全 | 久久看毛片 | 日韩高清一区在线 | 日本3级在线观看 | 中文字幕a在线 | 91在线区 | 日韩av电影免费观看 | 丁香婷婷在线 | 中文字幕日韩av | 麻豆久久久久 | 久久99网站 | 免费网站观看www在线观看 | 黄色www| 97在线资源 | 久久草草影视免费网 | 99婷婷狠狠成为人免费视频 | 久久久一本精品99久久精品66 | 一区二区伦理 | 国产视频 久久久 | 国产在线精品观看 | 国产精品一区二区麻豆 | 啪啪凸凸 | 人人爽人人爽人人爽人人爽 | 久久精品久久久久久久 | 蜜桃传媒一区二区 | 99精品网站| 国产黄色免费在线观看 | 天天插伊人 | 91网站在线视频 | 中文字幕在线观看一区二区 | 国产成人免费 | 九九热免费观看 | 4438全国亚洲精品观看视频 | 欧美日韩另类视频 | 色黄www小说 | 欧美99精品 | 国产资源免费在线观看 | 99人成在线观看视频 | 男女视频久久久 | 99r在线| 高潮久久久久久久久 | 国产精品破处视频 | 日韩精品一区不卡 | 久久久久久蜜桃一区二区 | 欧美精品小视频 | 国产在线一区二区三区播放 | 国产精品一区二区三区视频免费 | av电影在线观看完整版一区二区 | 深爱婷婷网 | 99视频国产精品免费观看 | 日韩中文字幕网站 | 91成人欧美| 久久免费毛片 | 国产成人精品福利 | 欧美专区亚洲专区 | 国产亚洲人成网站在线观看 | 黄色天堂在线观看 | 国产r级在线观看 | 奇米影视8888在线观看大全免费 | 日日爱网址 | 黄色1级毛片 | 色婷婷av国产精品 | 国产第页 | 99精品免费| 久久午夜国产精品 | 99精品在线| 在线观看的av | 欧美成年性 | 国产精品成人aaaaa网站 | 免费av大片 | 久久五月婷婷丁香社区 | 高清av免费一区中文字幕 | 免费看黄在线观看 | 欧美日韩在线网站 | 欧美大片www | www.国产毛片 | 国产一区二区在线视频观看 | 伊人成人激情 | 天天干天天射天天爽 | 69人人| 日韩91av| av免费看在线 | 麻豆视频在线 | 欧美精品久久久久久 | 欧美在线视频日韩 | 97精品国产一二三产区 | 国产美女精品视频免费观看 | 国内少妇自拍视频一区 | 免费日韩在线 | 国产97碰免费视频 | 毛片二区| 日韩美在线 | 日韩一二三在线 | 夜色资源站wwwcom | 99精品视频免费看 | 黄污网站在线 | 国产黄色理论片 | 97在线观看免费高清完整版在线观看 | 免费看成人 | 蜜臀av麻豆 | 久久精品中文字幕一区二区三区 | 一区二区三区在线观看中文字幕 | 亚洲精品国产高清 | 九九久 | 亚洲专区路线二 | 在线激情电影 | 久久影视网 | 特级黄录像视频 | 国产视频一区在线播放 | 中文字幕 国产专区 | 91免费试看 | 97香蕉久久超级碰碰高清版 | 亚洲va天堂va欧美ⅴa在线 | 97视频一区| 亚洲精品视频在线看 | 最新国产中文字幕 | 91漂亮少妇露脸在线播放 | 国产精品欧美久久久久无广告 | 在线a视频 | 国产成人精品一区二区三区在线观看 | 女女av在线 | 欧美一区二区三区四区夜夜大片 | 欧美日韩国产亚洲乱码字幕 | 视频二区在线 | 日本二区三区在线 | 精品久久影院 | 国产精品第54页 | av久久在线 | 久久精品三 | 国产成人精品一区二区三区免费 | 久久精品视频在线 | 91亚洲国产成人久久精品网站 | 在线a人片免费观看视频 | 欧美伦理一区二区三区 | 天天干夜夜爽 | 欧洲精品码一区二区三区免费看 | 九九九九热精品免费视频点播观看 | 狠狠的干狠狠的操 | 亚洲激情 在线 | 国产精品久久久久一区二区三区 | 日韩mv欧美mv国产精品 | 亚洲激情一区二区三区 | 欧美一级高清片 | 中文区中文字幕免费看 | 91成人破解版 | 又黄又爽又刺激 | 国产一级黄色片免费看 | 国产福利精品一区二区 | 久久久国产影院 | 99爱精品在线 | av看片在线 | av福利网址导航 | 99久视频| 成人网色| 国产91在线播放 | 超碰com| 成人黄色免费在线观看 | 国模视频一区二区三区 | 99超碰在线播放 | 国产中文字幕视频在线观看 | 日韩在线观看a | 麻豆91在线观看 | 亚洲国产成人久久 | 99精品亚洲 | 日韩伦理片hd | 91麻豆精品国产91久久久久久久久 | 国产一级免费观看 | 91亚洲精品久久久中文字幕 | av免费电影网站 | 日韩精品视频免费专区在线播放 | 亚洲在线看 | 久久精品欧美日韩精品 | 韩国精品视频在线观看 | 最新的av网站 | 亚洲精品中文字幕视频 | 国产精品免费观看网站 | 亚洲激精日韩激精欧美精品 | 欧美日韩亚洲第一页 | 99麻豆视频 | 日韩欧美在线视频一区二区三区 | 五月综合色 | 国产免费二区 | 精品国内自产拍在线观看视频 | 视频一区在线播放 | av免费成人 | 久久久久免费精品国产 | 国产精品久久久区三区天天噜 | 精品国产一区二区三区久久 | 日韩在线观看一区二区 | 久久爱www. | 国产在线播放一区 | 国产精品免费久久 | 欧美日韩在线精品 | 六月丁香婷婷网 | 免费久久片 | 毛片美女网站 | 亚洲综合爱 | 美女中文字幕 | 欧美在线观看视频 | 视频二区| 久久精品一区二区三区国产主播 | 国产专区欧美专区 | 久久99精品国产99久久6尤 | 中文字幕一区二区在线播放 | 啪啪动态视频 | 玖玖玖精品 | 激情欧美网 | 免费无遮挡动漫网站 | 亚洲人人av| 国产成人综合在线观看 | 国产精品久久久久av福利动漫 | 国产 日韩 欧美 中文 在线播放 | 久久亚洲婷婷 | 成人97视频| 国产一区福利 | 国产精品色婷婷 | 97在线播放视频 | 色a4yy| 国产xx视频 | 亚洲色图 校园春色 | 在线视频在线观看 | 中文字幕乱码日本亚洲一区二区 | 激情五月婷婷综合网 | 美女视频黄在线观看 | 狠狠色狠狠综合久久 | 最近中文字幕国语免费av | 国产亚洲欧美日韩高清 | 又黄又爽的视频在线观看网站 | 国产精品国产精品 | 欧美aa一级 | 国产真实精品久久二三区 | 麻豆国产露脸在线观看 | 免费在线观看av网址 | 久久电影网站中文字幕 | 欧美伊人网 | 国产一区免费视频 | 欧美性受极品xxxx喷水 | 欧美一区日韩精品 | 亚洲电影在线看 | 97国产一区| 日本午夜免费福利视频 | 日韩av在线资源 | 三上悠亚一区二区在线观看 | 国产精品福利午夜在线观看 | 日韩欧美精品一区二区 | 国产色婷婷 | 亚洲欧美日韩一区二区三区在线观看 | 波多野结衣在线视频免费观看 | 日韩欧美在线免费观看 | 国产一级一级国产 | 激情av五月婷婷 | 男女啪啪免费网站 | 日韩在线观看免费 | 99c视频在线| 国产精品免费在线 | 99热播精品 | 天天爽天天爽天天爽 | 在线免费观看视频一区 | 黄污视频网站 | 成人亚洲欧美 | 天天操夜夜叫 | 国产一级片一区二区三区 | 久久久久久麻豆 | 国产精品久久久免费看 | 欧产日产国产69 | 午夜视频在线观看一区二区 | 国产破处视频在线播放 | 99在线精品视频 | 天天干天天拍天天操 | 日韩理论片中文字幕 | 免费久久久久久 | 五月天国产精品 | 国产成人精品国内自产拍免费看 |