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

Java實(shí)例講解反射機(jī)制Reflection

開(kāi)發(fā) 后端
Java提供了一套機(jī)制來(lái)動(dòng)態(tài)執(zhí)行方法和構(gòu)造方法,以及數(shù)組操作等,這套機(jī)制就叫——反射。反射機(jī)制是如今很多流行框架的實(shí)現(xiàn)基礎(chǔ),其中包括Spring、Hibernate等。原理性的問(wèn)題不是本文的重點(diǎn),接下來(lái)讓我們?cè)贘ava實(shí)例中學(xué)習(xí)這套精彩的機(jī)制。

1. 得到某個(gè)對(duì)象的屬性

Java實(shí)例

  1. public Object getProperty(Object owner, String fieldName) throws Exception {         
  2.     Class ownerownerClass = owner.getClass();                                             
  3.                                                                                      
  4.     Field field = ownerClass.getField(fieldName);                                    
  5.                                                                                      
  6.     Object property = field.get(owner);                                              
  7.                                                                                      
  8.     return property;                                                                 
  9. }  

Class ownerClass = owner.getClass():得到該對(duì)象的Class。

Field field = ownerClass.getField(fieldName):通過(guò)Class得到類聲明的屬性。

Object property = field.get(owner):通過(guò)對(duì)象得到該屬性的實(shí)例,如果這個(gè)屬性是非公有的,這里會(huì)報(bào)IllegalAccessException。

2. 得到某個(gè)類的靜態(tài)屬性

  1. public Object getStaticProperty(String className, String fieldName)       
  2.             throws Exception {                                            
  3.     Class ownerClass = Class.forName(className);                          
  4.                                                                           
  5.     Field field = ownerClass.getField(fieldName);                         
  6.                                                                           
  7.     Object property = field.get(ownerClass);                              
  8.                                                                           
  9.     return property;                                                      
  10. }     

Class ownerClass = Class.forName(className) :首先得到這個(gè)類的Class。

Field field = ownerClass.getField(fieldName):和上面一樣,通過(guò)Class得到類聲明的屬性。

Object property = field.get(ownerClass) :這里和上面有些不同,因?yàn)樵搶傩允庆o態(tài)的,所以直接從類的Class里取。

3. 執(zhí)行某對(duì)象的方法

  1. public Object invokeMethod(Object owner, String methodName, Object[] args) throws Exception {      
  2.     Class ownerownerClass = owner.getClass();      
  3.     Class[] argsClass = new Class[args.length];      
  4.     for (int i = 0j = args.length; i < j; i++) {      
  5.         argsClass[i] = args[i].getClass();      
  6.     }       
  7.     Method method = ownerClass.getMethod(methodName, argsClass);         
  8.     return method.invoke(owner, args);       

  
Class owner_class = owner.getClass() :首先還是必須得到這個(gè)對(duì)象的Class。

3~6行:配置參數(shù)的Class數(shù)組,作為尋找Method的條件。

Method method = ownerClass.getMethod(methodName, argsClass):通過(guò)Method名和參數(shù)的Class數(shù)組得到要執(zhí)行的Method。

method.invoke(owner, args):執(zhí)行該Method,invoke方法的參數(shù)是執(zhí)行這個(gè)方法的對(duì)象,和參數(shù)數(shù)組。返回值是Object,也既是該方法的返回值。

4. 執(zhí)行某個(gè)類的靜態(tài)方法

  1. public Object invokeStaticMethod(String className, String methodName,               
  2.             Object[] args) throws Exception {                                       
  3.     Class ownerClass = Class.forName(className);                                    
  4.                                                                                     
  5.     Class[] argsClass = new Class[args.length];                                     
  6.                                                                                     
  7.     for (int i = 0j = args.length; i < j; i++) {                                  
  8.         argsClass[i] = args[i].getClass();                                          
  9.     }                                                                               
  10.                                                                                     
  11.     Method method = ownerClass.getMethod(methodName, argsClass);                    
  12.                                                                                     
  13.     return method.invoke(null, args);                                               
  14. }   

基本的原理和實(shí)例3相同,不同點(diǎn)是***一行,invoke的一個(gè)參數(shù)是null,因?yàn)檫@是靜態(tài)方法,不需要借助實(shí)例運(yùn)行。

5. 新建Java實(shí)例

  1. public Object newInstance(String className, Object[] args) throws Exception {       
  2.     Class newoneClass = Class.forName(className);                                   
  3.                                                                                     
  4.     Class[] argsClass = new Class[args.length];                                     
  5.                                                                                     
  6.     for (int i = 0j = args.length; i < j; i++) {                                  
  7.         argsClass[i] = args[i].getClass();                                          
  8.     }                                                                               
  9.                                                                                     
  10.     Constructor cons = newoneClass.getConstructor(argsClass);                       
  11.                                                                                     
  12.     return cons.newInstance(args);                                                  
  13.                                                                                     
  14. }   

這里說(shuō)的方法是執(zhí)行帶參數(shù)的構(gòu)造函數(shù)來(lái)新建實(shí)例的方法。如果不需要參數(shù),可以直接使用newoneClass.newInstance()來(lái)實(shí)現(xiàn)。

Class newoneClass = Class.forName(className):***步,得到要構(gòu)造的實(shí)例的Class。

第6~第10行:得到參數(shù)的Class數(shù)組。

Constructor cons = newoneClass.getConstructor(argsClass):得到構(gòu)造子。

cons.newInstance(args):新建實(shí)例。

6. 判斷是否為某個(gè)類的Java實(shí)例

  1. public boolean isInstance(Object obj, Class cls) {           
  2.     return cls.isInstance(obj);                              
  3. }     

7. 得到數(shù)組中的某個(gè)元素

  1. public Object getByArray(Object array, int index) {          
  2.     return Array.get(array,index);                           
  3. }       

附完整源碼:

  1. import java.lang.reflect.Array;      
  2. import java.lang.reflect.Constructor;      
  3. import java.lang.reflect.Field;      
  4. import java.lang.reflect.Method;      
  5.      
  6.      
  7. /**     
  8.  * Java Reflection Cookbook     
  9.  *     
  10.  * @author Michael Lee     
  11.  * @since 2006-8-23     
  12.  * @version 0.1a     
  13.  */     
  14.      
  15. public class Reflection {      
  16.     /**     
  17.      * 得到某個(gè)對(duì)象的公共屬性     
  18.      *     
  19.      * @param owner, fieldName     
  20.      * @return 該屬性對(duì)象     
  21.      * @throws Exception     
  22.      *     
  23.      */     
  24.     public Object getProperty(Object owner, String fieldName) throws Exception {      
  25.         Class ownerownerClass = owner.getClass();      
  26.      
  27.         Field field = ownerClass.getField(fieldName);      
  28.      
  29.         Object property = field.get(owner);      
  30.      
  31.         return property;      
  32.     }      
  33.      
  34.     /**     
  35.      * 得到某類的靜態(tài)公共屬性     
  36.      *     
  37.      * @param className   類名     
  38.      * @param fieldName   屬性名     
  39.      * @return 該屬性對(duì)象     
  40.      * @throws Exception     
  41.      */     
  42.     public Object getStaticProperty(String className, String fieldName)      
  43.             throws Exception {      
  44.         Class ownerClass = Class.forName(className);      
  45.      
  46.         Field field = ownerClass.getField(fieldName);      
  47.      
  48.         Object property = field.get(ownerClass);      
  49.      
  50.         return property;      
  51.     }      
  52.      
  53.      
  54.     /**     
  55.      * 執(zhí)行某對(duì)象方法     
  56.      *     
  57.      * @param owner     
  58.      *            對(duì)象     
  59.      * @param methodName     
  60.      *            方法名     
  61.      * @param args     
  62.      *            參數(shù)     
  63.      * @return 方法返回值     
  64.      * @throws Exception     
  65.      */     
  66.     public Object invokeMethod(Object owner, String methodName, Object[] args)      
  67.             throws Exception {      
  68.      
  69.         Class ownerownerClass = owner.getClass();      
  70.      
  71.         Class[] argsClass = new Class[args.length];      
  72.      
  73.         for (int i = 0j = args.length; i < j; i++) {      
  74.             argsClass[i] = args[i].getClass();      
  75.         }      
  76.      
  77.         Method method = ownerClass.getMethod(methodName, argsClass);      
  78.      
  79.         return method.invoke(owner, args);      
  80.     }      
  81.      
  82.      
  83.       /**     
  84.      * 執(zhí)行某類的靜態(tài)方法     
  85.      *     
  86.      * @param className     
  87.      *            類名     
  88.      * @param methodName     
  89.      *            方法名     
  90.      * @param args     
  91.      *            參數(shù)數(shù)組     
  92.      * @return 執(zhí)行方法返回的結(jié)果     
  93.      * @throws Exception     
  94.      */     
  95.     public Object invokeStaticMethod(String className, String methodName,      
  96.             Object[] args) throws Exception {      
  97.         Class ownerClass = Class.forName(className);      
  98.      
  99.         Class[] argsClass = new Class[args.length];      
  100.      
  101.         for (int i = 0j = args.length; i < j; i++) {      
  102.             argsClass[i] = args[i].getClass();      
  103.         }      
  104.      
  105.         Method method = ownerClass.getMethod(methodName, argsClass);      
  106.      
  107.         return method.invoke(null, args);      
  108.     }      
  109.      
  110.      
  111.      
  112.     /**     
  113.      * 新建實(shí)例     
  114.      *     
  115.      * @param className     
  116.      *            類名     
  117.      * @param args     
  118.      *            構(gòu)造函數(shù)的參數(shù)     
  119.      * @return 新建的實(shí)例     
  120.      * @throws Exception     
  121.      */     
  122.     public Object newInstance(String className, Object[] args) throws Exception {      
  123.         Class newoneClass = Class.forName(className);      
  124.      
  125.         Class[] argsClass = new Class[args.length];      
  126.      
  127.         for (int i = 0j = args.length; i < j; i++) {      
  128.             argsClass[i] = args[i].getClass();      
  129.         }      
  130.      
  131.         Constructor cons = newoneClass.getConstructor(argsClass);      
  132.      
  133.         return cons.newInstance(args);      
  134.      
  135.     }      
  136.      
  137.      
  138.           
  139.     /**     
  140.      * 是不是某個(gè)類的實(shí)例     
  141.      * @param obj 實(shí)例     
  142.      * @param cls 類     
  143.      * @return 如果 obj 是此類的實(shí)例,則返回 true     
  144.      */     
  145.     public boolean isInstance(Object obj, Class cls) {      
  146.         return cls.isInstance(obj);      
  147.     }      
  148.           
  149.     /**     
  150.      * 得到數(shù)組中的某個(gè)元素     
  151.      * @param array 數(shù)組     
  152.      * @param index 索引     
  153.      * @return 返回指定數(shù)組對(duì)象中索引組件的值     
  154.      */     
  155.     public Object getByArray(Object array, int index) {      
  156.         return Array.get(array,index);      
  157.     }      

以上就是Java實(shí)例講解反射機(jī)制Reflection的全部?jī)?nèi)容

【編輯推薦】

  1. 專題:Java實(shí)用開(kāi)發(fā)全集
  2. Java開(kāi)發(fā)者盛宴:JavaOne 2009技術(shù)前瞻
  3. 使用Java開(kāi)發(fā)Google APP Engine初試
  4. Flex連接Java EE的技術(shù)選擇
  5. 高手Java核心技術(shù)學(xué)習(xí)筆記
責(zé)任編輯:張燕妮 來(lái)源: javaeye
相關(guān)推薦

2010-08-11 09:40:44

LINQ

2011-03-09 09:11:52

java反射機(jī)制

2013-01-10 14:54:48

Android開(kāi)發(fā)組件Intent

2009-06-19 13:59:41

Java反射機(jī)制

2024-09-18 00:00:02

反射C#元數(shù)據(jù)

2012-04-05 13:50:38

Java

2011-09-27 10:23:24

Java反射機(jī)制

2017-03-24 09:44:33

Java反射機(jī)制

2017-05-17 15:28:15

Java反射機(jī)制

2011-04-01 14:50:56

Java的反射機(jī)制

2024-09-11 08:00:00

Java優(yōu)于反射開(kāi)發(fā)

2022-10-21 14:12:06

2012-02-08 09:44:52

Java反射

2010-09-17 13:02:11

JAVA反射機(jī)制

2014-07-15 10:16:02

AndroidIntent

2022-09-26 11:03:25

Java反射漏洞

2011-04-02 16:37:26

PAT

2010-06-03 18:22:38

Hadoop

2010-09-14 17:20:57

2010-03-15 19:37:00

Java多線程同步
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

毛片基地黄久久久久久天堂| 91精品网站在线观看| 91影院在线观看| 97色伦亚洲国产| 一级欧美一级日韩片| 白浆在线视频| 91视频com| 欧美专区日韩视频| 国产探花视频在线播放| 在线播放成人| 亚洲成av人片在www色猫咪| 国产一区二区高清不卡| 国产91精品看黄网站在线观看| 国产精品一国产精品| 欧美精选一区二区| 国产尤物av一区二区三区| 无码国产精品一区二区色情男同 | 成人不卡免费av| 欧美一级黑人aaaaaaa做受| 91网站免费入口| 在线不卡一区| 欧美日韩国产一区二区| 亚洲欧洲精品在线观看| 蜜桃在线一区二区| 日韩精品一区第一页| 久久久精品国产亚洲| 欲求不满的岳中文字幕| 国产成人精品一区二三区在线观看 | 香港三日本三级少妇66| 免费亚洲电影在线| 久久久视频免费观看| 国产毛片欧美毛片久久久| 视频一区日韩精品| 亚洲va国产va欧美va观看| 日韩欧美亚洲v片| 丰满人妻av一区二区三区| 日韩成人免费在线| 97精品久久久中文字幕免费| 国产色无码精品视频国产| 台湾色综合娱乐中文网| 在线综合视频播放| 91蝌蚪视频在线观看| 国内高清免费在线视频| 综合电影一区二区三区 | 无码国产精品96久久久久| 极品美女销魂一区二区三区| 欧美一区二区三区免费视| 成人观看免费视频| 欧美国产美女| 一本色道久久88综合日韩精品 | 久久综合色8888| 成人三级在线| 国产精品久久久久久在线| 久久精品欧洲| 国内精品久久久久久影视8| 欧美日韩色视频| 九九久久婷婷| 日韩精品极品在线观看播放免费视频| 黑人无套内谢中国美女| 热久久久久久| 在线看不卡av| 毛葺葺老太做受视频| 波多野结衣亚洲| 亚洲午夜久久久| 国产内射老熟女aaaa| 欧美日本高清| 中文字幕中文字幕中文字幕亚洲无线| 奇米视频888战线精品播放| 免费在线一级视频| 成人福利视频在线看| 成人区精品一区二区| 国内精品国产成人国产三级| 国产毛片精品视频| 91久久国产婷婷一区二区| 国产一区二区在线视频聊天| 人妖欧美一区二区| 国产精品免费观看在线| 国产成人av免费| 蓝色福利精品导航| 成人在线一区二区| 国产丝袜在线视频| 国产一区二区电影| 亚洲最大福利网站| 国产成人三级在线观看视频| 国v精品久久久网| 国产综合动作在线观看| 天堂在线视频免费| 久久久久久一二三区| 久久久久资源| 成人性生交大片免费看午夜| 国产精品乱码一区二区三区软件| 在线视频不卡一区二区| 欧美性猛片xxxxx免费中国 | 天堂网一区二区| 久久精品国产一区二区三| 97se亚洲综合| 欧美女同网站| 亚洲日本中文字幕区| 国产精品成人久久电影| 天天免费亚洲黑人免费| 欧美日韩国产大片| 蜜桃视频无码区在线观看| 卡通动漫精品一区二区三区| 亚洲人a成www在线影院| 91久久国产综合| 一本色道88久久加勒比精品| 国产成人一区二区在线| 在线观看亚洲国产| 高清国产一区二区三区| 日本三级中国三级99人妇网站| 欧美三级黄网| 欧美日韩国产中文字幕| 国产成人美女视频| 久久精品色播| 久久久精品网站| 亚洲天堂一区在线观看| 经典三级在线一区| 精品久久久久久一区二区里番| 午夜免费福利在线观看| 调教+趴+乳夹+国产+精品| 农村妇女精品一二区| 人人爱人人干婷婷丁香亚洲| 欧美成人免费网站| 超碰97av在线| 亚洲影音先锋| 91精品国自产在线观看| 黄色影院在线播放| 一区二区三区在线视频观看| 国产视频在线视频| 国内精品偷拍| 欧美成人剧情片在线观看| 日本高清不卡码| 成人国产在线观看| 日本一区二区在线视频| 1区2区3区在线| 日韩丝袜情趣美女图片| 自拍偷拍第9页| 蘑菇福利视频一区播放| 成人性色av| 日本在线观看免费| 色8久久精品久久久久久蜜| 国产在线观看免费播放| 日韩一区二区三区免费播放| 日本成熟性欧美| 免费看日韩av| 一区二区免费视频| 亚洲第一色av| 国产精品久久久久久久免费观看 | 亚洲人成77777| 电影一区二区三区| 亚洲精品99久久久久| 麻豆视频在线免费看| 免费观看在线综合| 午夜一区二区三视频在线观看| 亚洲天堂手机| 亚洲精品v欧美精品v日韩精品| 中文字幕人妻一区二| 九九久久精品视频| 一本久久a久久精品vr综合 | 1pondo在线播放免费| 亚洲国产wwwccc36天堂| 一级全黄裸体片| 你懂的成人av| 91免费看网站| 日本中文字幕中出在线| 欧美亚洲尤物久久| 亚洲av无码国产精品麻豆天美| 性娇小13――14欧美| 欧美xxxx黑人又粗又长精品| 91精品国产91久久久久久青草| 欧美一区二区三区精品| 农村妇女精品一区二区| 国产精品综合二区| 日韩免费在线观看av| 国产精品亚洲综合在线观看| 久久这里有精品| 草草视频在线播放| 亚洲一区影音先锋| 日本精品一二三| 欧美福利视频| 国产综合 伊人色| 成人亚洲欧美| 中文字幕亚洲欧美| 99视频在线观看免费| 亚洲一区二区欧美激情| 亚洲天堂美女视频| 久久婷婷影院| 亚洲欧洲精品一区| 玖玖玖电影综合影院| 久久久亚洲国产天美传媒修理工| 天堂av手机版| 欧美性一级生活| 九九视频免费看| 丰满白嫩尤物一区二区| 免费无遮挡无码永久视频| 欧美一区二区三区激情视频| 91久久久久久| 日本在线视频www鲁啊鲁| 日韩成人激情视频| 亚洲一区二区色| 夜夜嗨av一区二区三区| 三叶草欧洲码在线| 久久国产三级精品| 黄色一级视频在线播放| 国产欧美日韩| 91久久国产自产拍夜夜嗨| 美女网站在线看| 中文字幕日韩免费视频| 欧美 日韩 综合| 欧美日韩国产综合新一区| 国产欧美小视频| 成人av综合一区| 亚洲人视频在线| 中文在线不卡| 午夜精品亚洲一区二区三区嫩草 | 欧美日韩国产精品专区| 亚洲精品国产91| 成人美女在线视频| 九九热免费在线观看| 一区二区日韩免费看| 一区二区三区视频| 亚洲视频分类| 成人高清在线观看| 小说区图片区亚洲| 热久久免费视频精品| 肉肉视频在线观看| 日韩在线观看免费| 日本aaa在线观看| 精品国产一区二区在线观看| 亚洲影院在线播放| 亚洲一区二区四区蜜桃| 91导航在线观看| 97国产精品videossex| 天天爽夜夜爽一区二区三区| 亚洲综合欧美| www成人免费| 68国产成人综合久久精品| 国产尤物99| 伊人久久大香线蕉av超碰| 成人av番号网| 91九色综合| 日韩美女在线观看一区| 国产又色又爽又黄刺激在线视频| y97精品国产97久久久久久| 成人毛片在线免费观看| 制服丝袜成人动漫| 中文字幕日韩免费| 亚洲国产精品久久艾草纯爱 | 一区二区成人在线| 成人18视频免费69| 亚洲国产精品t66y| 国产精品免费无码| 久久综合99re88久久爱| 艳妇乳肉亭妇荡乳av| 成人高清视频在线| 欧美日韩一区二区三区四区五区六区| 韩国毛片一区二区三区| 污污视频网站在线| 紧缚捆绑精品一区二区| 最新中文字幕2018| 日韩和欧美一区二区| 亚洲中文字幕久久精品无码喷水| 国产精品综合| 麻豆av免费在线| 人禽交欧美网站| 国产三级生活片| 国产在线精品一区二区三区不卡| 九九热精品在线播放| 久久国产欧美日韩精品| 日韩av片专区| 精品中文av资源站在线观看| 国内外成人免费视频| 国产欧美自拍一区| 欧美在线日韩精品| 天天综合精品| www精品久久| 奇米精品一区二区三区四区| 在线播放黄色av| aaa国产一区| www中文在线| 亚洲一区二区三区四区中文字幕 | 欧美日韩视频在线一区二区| av高清一区二区| 精品视频一区在线视频| 日本在线人成| 2021国产精品视频| 青青国产精品| 久久久久久亚洲精品不卡4k岛国| 日本不卡高清| 久操网在线观看| 青草av.久久免费一区| 国产大学生视频| 国产精品乱码人人做人人爱| 精品国产免费观看| 欧美精品亚洲二区| 青青视频在线观| 欧美区二区三区| 97精品国产综合久久久动漫日韩 | 精品999视频| 欧美成人精品不卡视频在线观看| 日韩国产激情| 国产久一道中文一区| 日韩中文字幕高清在线观看| 国产女大学生av| 国产成人免费高清| av资源在线免费观看| 欧美日韩亚洲精品内裤| 国产ts变态重口人妖hd| 丝袜一区二区三区| 性欧美freesex顶级少妇| 91久久国产精品91久久性色| 精品理论电影| 黄www在线观看| 成人高清免费观看| 久久久精品人妻一区二区三区四 | 国产大片一区| 日本三区在线观看| 99久久精品99国产精品| 久久久精品视频免费观看| 欧美三级在线视频| 日本韩国一区| 97avcom| 国产美女撒尿一区二区| 黄色一级片黄色| 国产高清久久久久| 亚洲女人久久久| 欧美日韩一区二区三区在线看| 青青久草在线| 欧美亚洲在线观看| 日韩高清成人在线| 精品国产一二三四区| zzijzzij亚洲日本少妇熟睡| 久久久久无码精品国产| 日韩欧美一区二区在线视频| 麻豆视频在线观看免费网站| 国产欧美一区二区| 天天综合一区| 日韩av加勒比| 樱花草国产18久久久久| 精品久久无码中文字幕| 久久97精品久久久久久久不卡| 青草伊人久久| 国产黄色片免费在线观看| 成人av网站大全| 国产做受高潮漫动| 亚洲精品中文字幕女同| 欧美性猛交xxx高清大费中文| 欧美精品一区二区三区在线四季 | 午夜性色一区二区三区免费视频| 欧洲美女亚洲激情| 亚洲美女在线一区| 性生交大片免费看女人按摩| 欧美黄色三级网站| 懂色av一区二区| 乱妇乱女熟妇熟女网站| 久久久国产综合精品女国产盗摄| 亚洲精品无码久久久久| 日韩视频免费中文字幕| 欧美不卡在线观看| 亚洲色成人www永久在线观看| 99视频有精品| 久久久精品视频网站| 色yeye香蕉凹凸一区二区av| 成人在线日韩| 国产青青在线视频| 国产欧美一区二区精品性色超碰 | 伊人av成人| 丁香五精品蜜臀久久久久99网站| 欧美精品亚洲精品日韩精品| 伊人伊人伊人久久| 日本一区影院| 日本成年人网址| 亚洲日本在线看| 亚洲人午夜射精精品日韩| 国产精品久久久久久久久久新婚| 婷婷久久综合| 日本黄色录像片| 欧美在线啊v一区| 女同一区二区免费aⅴ| 麻豆成人av| 国产一区二区三区四区五区入口| 成人免费看片98| 中文字幕成人在线| 国产福利资源一区| 看欧美ab黄色大片视频免费| 亚洲精品免费在线观看| 殴美一级特黄aaaaaa| 国产精品丝袜久久久久久不卡| 国语自产精品视频在线看8查询8| 制服 丝袜 综合 日韩 欧美| 日韩三级视频在线看| 婷婷综合六月| 国产手机免费视频| 国产精品国产成人国产三级| 日本精品久久久久久| 国产在线观看91精品一区| 亚洲少妇自拍| 青青草偷拍视频| 综合136福利视频在线| 日韩三级av|