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

詳解Java反射機制實例

開發 后端
在 Java 運行時環境中,對于任意一個類,能否知道這個類有哪些屬性和方法?對于任意一個對象,能否調用它的任意一個方法?答案是肯定的。這種動態獲取類的信息,以及動態調用對象的方法的功能來自于Java 語言的反(Reflection)機制。

在 Java 運行時環境中,對于任意一個類,能否知道這個類有哪些屬性和方法?對于任意

一個對象,能否調用它的任意一個方法?答案是肯定的。這種動態獲取類的信息,以及動態

調用對象的方法的功能來自于Java 語言的反射(Reflection)機制。Java 反射機制主要提供

了以下功能:

在運行時判斷任意一個對象所屬的類;

在運行時構造任意一個類的對象;

在運行時判斷任意一個類所具有的成員變量和方法;

在運行時調用任意一個對象的方法;

生成動態代理。

在 JDK 中,主要由以下類來實現Java 反射機制,這些類都位于java.lang.reflect

包中。

Class類:代表一個類。

Field類:代表類的成員變量(成員變量也稱為類的屬性)。

Method類:代表類的方法。

Constructor 類:代表類的構造方法。

Array類:提供了動態創建數組,以及訪問數組元素的靜態方法。

如例程1所示DumpMethods 類演示了Reflection API的基本作用,它讀取命令

行參數指定的類名,然后打印這個類所具有的方法信息:

例程1:DumpMethods.java

Java代碼

 

 

  1. import java.lang.reflect.*;     
  2.     
  3. public class DumpMethods {     
  4.     public static void main(String args[]) throws Exception {     
  5.         // 加載并初始化命令行參數指定的類     
  6.         Class classType = Class.forName(args[0]);     
  7.         // 獲得類的所有方法     
  8.         Method methods[] = classType.getDeclaredMethods();     
  9.         for (int i = 0; i < methods.length; i++)     
  10.             System.out.println(methods[i].toString());     
  11.     }     
  12. }    

 

運行命令“java DumpMethods java.util.Stack”,就會顯示java.util.Stack類所具有的方法,程序的打印結果如下:

 

  1. public synchronized java.lang.Object java.util.Stack.pop()  
  2.  
  3. public java.lang.Object java.util.Stack.push(java.lang.Object)  
  4.  
  5. public boolean java.util.Stack.empty()  
  6.  
  7. public synchronized java.lang.Object java.util.Stack.peek()  
  8.  
  9. public synchronized int java.util.Stack.search(java.lang.Object)  

如例程2 所示ReflectTester 類進一步演示了Reflection API 的基本使用方法。

ReflectTester 類有一個copy(Object object)方法,這個方法能夠創建一個和參數object同樣類型的對象,然后把object對象中的所有屬性復制到新建的對象中,并將它返回。這個例子只能復制簡單的JavaBean,假定JavaBean的每個屬性都有public類型的

getXXX()和setXXX()方法。

例程2 ReflectTester.java

Java代碼

 

 

  1. import java.lang.reflect.*;     
  2.     
  3. public class ReflectTester {     
  4.     public Object copy(Object object) throws Exception {     
  5.         // 獲得對象的類型     
  6.         Class classType = object.getClass();     
  7.         System.out.println("Class:" + classType.getName());     
  8.         // 通過默認構造方法創建一個新的對象     
  9.         Object objectCopy = classType.getConstructor(new Class[] {})     
  10.                 .newInstance(new Object[] {});     
  11.         // 獲得對象的所有屬性     
  12.         Field fields[] = classType.getDeclaredFields();     
  13.         for (int i = 0; i < fields.length; i++) {     
  14.             Field field = fields[i];     
  15.             String fieldName = field.getName();     
  16.             String firstLetter = fieldName.substring(01).toUpperCase();     
  17.             // 獲得和屬性對應的getXXX()方法的名字     
  18.             String getMethodName = "get" + firstLetter + fieldName.substring(1);     
  19.             // 獲得和屬性對應的setXXX()方法的名字     
  20.             String setMethodName = "set" + firstLetter + fieldName.substring(1);     
  21.             // 獲得和屬性對應的getXXX()方法     
  22.             Method getMethod = classType.getMethod(getMethodName,     
  23.                     new Class[] {});     
  24.             // 獲得和屬性對應的setXXX()方法     
  25.             Method setMethod = classType.getMethod(setMethodName,     
  26.                     new Class[] { field.getType() });     
  27.             // 調用原對象的getXXX()方法     
  28.             Object value = getMethod.invoke(object, new Object[] {});     
  29.             System.out.println(fieldName + ":" + value);     
  30.             // 調用復制對象的setXXX()方法     
  31.             setMethod.invoke(objectCopy, new Object[] { value });     
  32.         }     
  33.         return objectCopy;     
  34.     }     
  35.     
  36.     public static void main(String[] args) throws Exception {     
  37.         Customer customer = new Customer("Tom"21);     
  38.         customer.setId(new Long(1));     
  39.         Customer customerCopy = (Customer) new ReflectTester().copy(customer);     
  40.         System.out.println("Copy information:" + customerCopy.getName() + " "    
  41.                 + customerCopy.getAge());     
  42.     }     
  43. }     
  44.     
  45. class Customer { // Customer類是一個JavaBean     
  46.     private Long id;     
  47.     private String name;     
  48.     private int age;     
  49.     
  50.     public Customer() {     
  51.     }     
  52.     
  53.     public Customer(String name, int age) {     
  54.         this.name = name;     
  55.         this.age = age;     
  56.     }     
  57.     
  58.     public Long getId() {     
  59.         return id;     
  60.     }     
  61.     
  62.     public void setId(Long id) {     
  63.         this.id = id;     
  64.     }     
  65.     
  66.     public String getName() {     
  67.         return name;     
  68.     }     
  69.     
  70.     public void setName(String name) {     
  71.         this.name = name;     
  72.     }     
  73.     
  74.     public int getAge() {     
  75.         return age;     
  76.     }     
  77.     
  78.     public void setAge(int age) {     
  79.         this.age = age;     
  80.     }     
  81. }   

 

執行結果:Class:Customer

id:1

name:Tom

age:21

Copy information:Tom 21

Class類是Reflection API中的核心類,它有以下方法。

getName():獲得類的完整名字。

getFields():獲得類的public類型的屬性。

getDeclaredFields():獲得類的所有屬性。

getMethods():獲得類的public類型的方法。

getDeclaredMethods():獲得類的所有方法。

getMethod(String name, Class[] parameterTypes):獲得類的特定方法,name 參

數指定方法的名字,parameterTypes參數指定方法的參數類型。

getConstrutors():獲得類的public類型的構造方法。

getConstrutor(Class[] parameterTypes):獲得類的特定構造方法,parameterTypes參數指定構造方法的參數類型。

如例程3 所示的InvokeTester 類的main()方法中,運用反射機制調用一個

InvokeTester 對象的add()和echo()方法。

例程3 InvokeTester.java

Java代碼

 

 

  1. import java.lang.reflect.*;     
  2.     
  3. public class InvokeTester {     
  4.     public int add(int param1, int param2) {     
  5.         return param1 + param2;     
  6.     }     
  7.     
  8.     public String echo(String msg) {     
  9.         return "echo:" + msg;     
  10.     }     
  11.     
  12.     public static void main(String[] args) throws Exception {     
  13.         Class classType = InvokeTester.class;     
  14.         Object invokeTester = classType.newInstance();     
  15.         // 調用InvokeTester對象的add()方法     
  16.         Method addMethod = classType.getMethod("add"new Class[] { int.class,     
  17.                 int.class });     
  18.         Object result = addMethod.invoke(invokeTester, new Object[] {     
  19.                 new Integer(100), new Integer(200) });     
  20.         System.out.println((Integer) result);     
  21.         // 調用InvokeTester對象的echo()方法     
  22.         Method echoMethod = classType.getMethod("echo",     
  23.                 new Class[] { String.class });     
  24.         result = echoMethod.invoke(invokeTester, new Object[] { "Hello" });     
  25.         System.out.println((String) result);     
  26.     }     
  27. }    

 

執行結果:300

echo:Hello

add()方法的兩個參數為int 類型,獲得表示add()方法的Method對象的代碼如下:

Method addMethod=classType.getMethod("add",new Class[]{int.class,int.class});

Method類的invoke(Object obj,Object args[])方法接收的參數必須為對象,如果參數為基本類型數據,必須轉換為相應的包裝類型的對象。invoke()方法的返回值總是對象,

如果實際被調用的方法的返回類型是基本類型數據,那么invoke()方法會把它轉換為相

應的包裝類型的對象,再將其返回。

在本例中,盡管InvokeTester 類的add()方法的兩個參數及返回值都是int 類型,調

用addMethod對象的invoke()方法時,只能傳遞Integer 類型的參數,并且invoke()方法的返回類型也是Integer 類型,Integer 類是int 基本類型的包裝類:

Object result=addMethod.invoke(invokeTester,

new Object[]{new Integer(100),new Integer(200)});

System.out.println((Integer)result); //result 為Integer類型

java.lang.Array 類提供了動態創建和訪問數組元素的各種靜態方法。如例程10-4

所示的ArrayTester1 類的main()方法創建了一個長度為10 的字符串數組,接著把索引

位置為5 的元素設為“hello”,然后再讀取索引位置為5 的元素的值。

例程10-4 ArrayTester1.java

Java代碼

 

 

  1. import java.lang.reflect.*;     
  2.     
  3. public class ArrayTester1 {     
  4.     public static void main(String args[]) throws Exception {     
  5.         Class classType = Class.forName("java.lang.String");     
  6.         // 創建一個長度為10 的字符串數組     
  7.         Object array = Array.newInstance(classType, 10);     
  8.         // 把索引位置為5 的元素設為"hello"     
  9.         Array.set(array, 5"hello");     
  10.         // 讀取索引位置為5 的元素的值     
  11.         String s = (String) Array.get(array, 5);     
  12.         System.out.println(s); //輸出hello     
  13.     }     
  14. }    

 

如例程10-5 所示的ArrayTester2 類的main()方法創建了一個5×10×15 的整型數

組,并把索引位置為[3][5][10]的元素的值為設37。

Java代碼

 

 

  1. import java.lang.reflect.*;     
  2.     
  3. public class ArrayTester2 {     
  4.     public static void main(String args[]) {     
  5.         int dims[] = new int[] { 51015 };     
  6.         Object array = Array.newInstance(Integer.TYPE, dims);     
  7.         // 使arrayObj 引用array[3]     
  8.         Object arrayObj = Array.get(array, 3);     
  9.         Class cls = arrayObj.getClass().getComponentType();     
  10.         System.out.println(cls);     
  11.         // 使arrayObj 引用array[3][5]     
  12.         arrayObj = Array.get(arrayObj, 5);     
  13.         // 把元素array[3][5][10]設為37     
  14.         Array.setInt(arrayObj, 1037);     
  15.         int arrayCast[][][] = (int[][][]) array;     
  16.         System.out.println(arrayCast[3][5][10]);     
  17.     }     
  18. }    

 

輸出:

class [I

37???

【編輯推薦】

  1. 深入剖析JAVA反射機制強大功能
  2. 關于Java反射機制的一個實例
  3. Java編譯過程與c/c++編譯過程有何不同
  4. Java虛擬機發展回顧 為跨平臺而生
  5. Java虛擬機(JVM)中的內存設置詳解
責任編輯:金賀 來源: JavaEye博客
相關推薦

2011-09-27 10:23:24

Java反射機制

2009-06-17 13:57:54

java實例Reflection

2011-04-01 14:50:56

Java的反射機制

2011-05-26 15:23:34

JavaReflection

2010-08-11 09:40:44

LINQ

2009-06-19 13:59:41

Java反射機制

2012-04-05 13:50:38

Java

2009-08-28 13:12:56

C#反射實例C#反射

2010-02-04 11:23:25

C++反射機制

2017-05-17 15:28:15

Java反射機制

2017-03-24 09:44:33

Java反射機制

2009-08-31 09:41:05

C#反射靜態方法開發

2009-04-10 09:55:44

C#反射.NET

2022-10-21 14:12:06

2010-09-17 13:02:11

JAVA反射機制

2012-02-08 09:44:52

Java反射

2009-06-11 08:59:35

2022-09-26 11:03:25

Java反射漏洞

2012-02-08 10:12:19

Java反射

2023-11-01 13:48:00

反射java
點贊
收藏

51CTO技術棧公眾號

www.蜜桃av.com| 91视频免费看片| 三妻四妾的电影电视剧在线观看| 91丨九色porny丨蝌蚪| 国产精品99久久久久久人 | 欧美俄罗斯乱妇| 精品国产人妻一区二区三区| 欧美暴力调教| 亚洲一区二区美女| 相泽南亚洲一区二区在线播放| 国产普通话bbwbbwbbw| 亚洲欧美bt| 欧美另类极品videosbest最新版本 | 在线观看欧美激情| 性感美女一级片| 精品亚洲aⅴ乱码一区二区三区| 97国产精品久久| 久久福利免费视频| 国产99精品| 亚洲成人精品视频| 污污的网站免费| 中文在线а√在线8| 亚洲免费在线视频| 日韩精品另类天天更新| 欧美一级特黄aaaaaa| 国内精品国产成人| 国产99久久精品一区二区永久免费 | 欧美色图在线播放| 亚洲成人999| 不卡的在线视频| 欧美三区四区| 婷婷成人激情在线网| 成人在线免费观看网址| 中文字幕在线观看日本| 91香蕉视频污在线| 国产福利不卡| 国产日韩欧美中文字幕| 久久国产精品99精品国产| 欧美中文字幕在线| 欧美一级视频免费观看| 欧美视频四区| 欧美日韩第一视频| 午夜国产福利一区二区| 欧美岛国激情| 中文字幕欧美国内| 微拍福利一区二区| 女人av一区| 亚洲欧洲中文天堂| 中文字幕影片免费在线观看| 国产成人夜色高潮福利影视| 日韩美一区二区三区| 一级黄色大片儿| 精品一区二区三区免费看| 制服丝袜亚洲色图| 91香蕉国产线在线观看| www一区二区三区| 欧美一区二区三区日韩| 亚洲第一天堂久久| 97色婷婷成人综合在线观看| 在线不卡免费欧美| 善良的小姨在线| 伊色综合久久之综合久久| 精品久久一区二区三区| 日批视频免费看| 露出调教综合另类| 亚洲欧美激情精品一区二区| 美女被到爽高潮视频| 波多野结衣在线观看一区二区三区 | 日韩欧美中文视频| 日本亚州欧洲精品不卡| 欧美mv日韩mv国产| 手机在线看片日韩| 国产一区二区三区天码| 色狠狠久久aa北条麻妃| 亚洲女人久久久| 欧美成人一品| 97欧美精品一区二区三区| 欧美日韩综合在线观看| 青椒成人免费视频| 亚洲aⅴ日韩av电影在线观看| 精品国产乱码久久久久久蜜臀网站| 国产成人免费视频精品含羞草妖精| 国产精品嫩草在线观看| 国产在线中文字幕| 自拍偷自拍亚洲精品播放| 亚洲国产精品成人天堂| 欧美男女交配| 91精品欧美综合在线观看最新| 韩国av中国字幕| 久久99国产精一区二区三区| 色综久久综合桃花网| 久久亚洲成人av| 天堂成人国产精品一区| 成人免费淫片视频软件| 少妇高潮一区二区三区69| 久久久久久久久久看片| 一区精品在线| 爱草tv视频在线观看992| 欧美亚洲日本国产| 国产精品熟妇一区二区三区四区| 欧美91在线| 视频直播国产精品| 国产一级视频在线| 日本 国产 欧美色综合| 国产精品视频500部| 在线播放麻豆| 婷婷一区二区三区| 中文字幕丰满乱码| 美女少妇全过程你懂的久久| 欧美插天视频在线播放| 一二三区免费视频| 国产成人啪免费观看软件| 日韩欧美亚洲在线| mm视频在线视频| 欧美一区午夜精品| 香蕉视频黄色在线观看| 欧美 日韩 国产 一区| 国产精品情侣自拍| 天堂av在线免费| 亚洲精品视频在线观看网站| 国产一级特黄a大片免费| 99精品国产一区二区三区2021| 在线观看欧美日韩| 国产又黄又猛又粗又爽| 国产成人av电影在线播放| 影音先锋欧美资源| 成人精品一区二区三区电影| 亚洲男人天堂手机在线| 日产精品久久久久久久| 国产成人亚洲综合a∨猫咪| 亚洲乱码一区二区三区三上悠亚| 中文不卡1区2区3区| 亚洲国产97在线精品一区| 少妇aaaaa| 久久se精品一区二区| 性刺激综合网| 色天使综合视频| 亚洲欧美日韩一区二区三区在线| 国产成人无码精品| 成人精品在线视频观看| 精品视频在线观看一区二区| 免费观看亚洲天堂| 久久影院资源网| 国产精品久久久久久久成人午夜 | 亚洲天堂一级片| 日韩va欧美va亚洲va久久| 欧美日韩三区四区| av综合电影网站| 亚洲精品网站在线播放gif| 国产又大又黄视频| 91丝袜国产在线播放| 免费黄色福利视频| 狠狠操综合网| 国产精品尤物福利片在线观看| 国产黄色在线播放| 在线免费观看日韩欧美| 日本高清黄色片| 蜜桃一区二区三区在线观看| 亚洲一区二区三区加勒比| 88xx成人网| 久热99视频在线观看| 国产日韩欧美一区二区东京热| 亚洲精品久久7777| 亚洲热在线视频| 国内精品美女在线观看| 国语精品中文字幕| 女生影院久久| 国产一区二区三区丝袜| 91成人一区二区三区| 亚洲精品视频自拍| 娇妻高潮浓精白浆xxⅹ| 国产欧美高清| 日韩一区二区三区资源| 中文字幕成人| 久久久久久亚洲精品不卡| 十九岁完整版在线观看好看云免费| 欧美日韩视频在线| 国产农村妇女精品一区| 国产一二精品视频| 人人妻人人做人人爽| 国产精品亚洲二区| 国产精品一区二区三区在线播放 | 97视频国产在线| 久久久久久久久亚洲精品| 欧美日本一区二区三区| 国产性猛交普通话对白| 久久久三级国产网站| 91女神在线观看| 亚洲美洲欧洲综合国产一区| 亚洲精品人成| av毛片精品| 国产噜噜噜噜噜久久久久久久久 | 国产精品扒开腿做爽爽爽视频 | 亚洲欧美乱综合| 国产麻豆天美果冻无码视频| 久久99在线观看| 免费看国产曰批40分钟| 色喇叭免费久久综合| 国产精品日韩一区二区 | 亚洲综合国产激情另类一区| 一区二区视频在线播放| 欧美人妖视频| 成人精品一区二区三区电影免费 | 婷婷丁香激情综合| 视频国产一区二区| 久久综合国产精品| 色欲无码人妻久久精品| 天堂久久久久va久久久久| 国产成人永久免费视频| 成人在线免费观看视频| 韩国精品一区二区三区六区色诱| 亚洲伊人精品酒店| 日韩美女毛茸茸| av资源网在线播放| 久热精品在线视频| 成人免费高清在线播放| 日韩av影片在线观看| 精品久久国产视频| 欧美日韩一区久久| 六月丁香激情综合| 亚洲国产aⅴ天堂久久| 无码黑人精品一区二区| 欧美韩国日本一区| 波多野结衣av在线免费观看| 国产精品18久久久久久久久| 日韩精品视频一二三| 美女黄网久久| 日韩av三级在线| 午夜精品电影| a级黄色片网站| 天天做天天爱天天综合网2021| 日本电影一区二区三区| 蜜桃国内精品久久久久软件9| 国模精品娜娜一二三区| 超碰成人在线观看| 国产福利久久精品| 97久久综合精品久久久综合| 成人写真福利网| 伊人久久大香线蕉综合影院首页| 国产精品视频在线播放| 婷婷激情一区| 国产精品电影网| 日韩大片欧美大片| 国产成人黄色av| 亚洲承认视频| 国产精品国产自产拍高清av水多| 欧美一区久久久| 国产精品成人aaaaa网站| 欧美一级大黄| 国产精品视频一| 亚洲高清国产拍精品26u| 成人福利视频在线观看| 日韩专区视频| 1卡2卡3卡精品视频| 欧美一区一区| 国产精品手机视频| 台湾亚洲精品一区二区tv| 日本一区二区三区四区在线观看| jizzjizz欧美69巨大| 一区二区三区四区欧美日韩| 亚洲乱码在线| 日韩精品在线观看av| 一区二区三区国产盗摄| 日韩视频第二页| 日本sm残虐另类| 亚洲国产综合av| 波多野结衣一区二区三区| 欧美性xxxx图片| 欧美国产乱子伦| 欧美成人综合色| 欧美性极品xxxx做受| 中文字幕乱码在线观看| 欧美一区二区国产| 少妇性bbb搡bbb爽爽爽欧美| 永久免费看mv网站入口亚洲| a级片国产精品自在拍在线播放| 欧美华人在线视频| 新片速递亚洲合集欧美合集| 国产欧美日韩免费看aⅴ视频| 日韩精品亚洲专区在线观看| 久久国产精品99久久久久久丝袜 | 久久婷婷国产综合精品青草| 天堂在线中文视频| 一区二区三区在线影院| 黄色一级片免费看| 欧美视频完全免费看| av在线免费在线观看| 亚洲女人被黑人巨大进入al| 日本电影在线观看网站| 久久久久国产视频| 99久久er| 国产精品久久波多野结衣| 精品freesex老太交| 中文字幕第50页| 老鸭窝亚洲一区二区三区| 香蕉网在线视频| 久久精品一区二区三区不卡| 久艹视频在线观看| 欧洲视频一区二区| 韩国中文字幕hd久久精品| 国产一区二区三区在线免费观看| 色呦呦在线播放| 国产精品三级久久久久久电影| 99a精品视频在线观看| 亚洲春色在线视频| 制服诱惑一区二区| 麻豆精品国产传媒| 国产精品网曝门| 国产免费观看av| 日韩精品专区在线影院重磅| jizz在线观看中文| 91精品国产网站| 亚洲第一二区| 资源网第一页久久久| 首页国产欧美久久| 影音先锋黄色资源| 一区二区三区四区精品在线视频| 夜夜躁日日躁狠狠久久av| 亚洲精品久久久一区二区三区| 99在线播放| 国产免费一区视频观看免费| 精品在线观看入口| 国产原创中文在线观看| 国产99久久久精品| 四虎884aa成人精品| 欧美日韩国产一区二区三区地区| 国产在线观看黄| 热门国产精品亚洲第一区在线| 天堂va欧美ⅴa亚洲va一国产| 宅男噜噜99国产精品观看免费| 日韩制服丝袜先锋影音| aa一级黄色片| 精品成人国产在线观看男人呻吟| 亚洲成a人片在线| 久久综合久久八八| 亚洲精品毛片| 亚洲欧洲精品一区| 麻豆精品在线播放| 日本女人性生活视频| 欧美亚洲愉拍一区二区| av在线免费观看网| 国产精品吴梦梦| 日本一区二区在线看| 91插插插插插插插插| 国产精品午夜电影| 一卡二卡三卡在线| 久久精品美女视频网站 | 91精品在线一区二区| 麻豆传媒在线完整视频| 91免费国产网站| 欧美另类视频| 国产xxxx视频| 精品色蜜蜜精品视频在线观看| 五月婷婷丁香网| 欧美最近摘花xxxx摘花| 国产精品探花在线观看| 免费看涩涩视频| 中文字幕佐山爱一区二区免费| 国产一区二区在线不卡| 精品自在线视频| 9l视频自拍九色9l视频成人| 男人日女人视频网站| 91理论电影在线观看| 免费一级a毛片| 久久精品国产2020观看福利| 欧美视频三区| 欧美变态另类刺激| 国产亚洲欧美一区在线观看| 在线观看色网站| 欧美激情综合亚洲一二区 | 懂色一区二区三区免费观看| 亚洲精品午夜久久久久久久| 日韩精品福利在线| 日本欧美不卡| 真人做人试看60分钟免费| 91亚洲男人天堂| 91中文字幕在线播放| 久久久最新网址| 欧美丝袜丝交足nylons172| 国内av免费观看| 欧美性xxxxhd| 九色porny在线| 久久av免费一区| 精品一区二区三区视频在线观看| 免费观看一级视频| 夜夜嗨av色综合久久久综合网| 免费观看亚洲天堂| 免费在线激情视频| 亚洲视频免费看| 天堂网在线播放| 91免费在线视频网站| 亚洲一区一卡| 日韩黄色免费观看| 亚洲美女在线观看| 日韩精品免费视频一区二区三区 | 成人av在线资源| 中文字幕福利视频| 91国在线精品国内播放| 亚洲综合小说| 欧美激情 一区|