锘??xml version="1.0" encoding="utf-8" standalone="yes"?>yy6080久久亚洲精品,久久久亚洲欧洲日产国码是AV,久久久久亚洲精品无码蜜桃http://www.tkk7.com/mlzry0612/articles/44927.htmlDanielDanielSun, 07 May 2006 15:48:00 GMThttp://www.tkk7.com/mlzry0612/articles/44927.htmlhttp://www.tkk7.com/mlzry0612/comments/44927.htmlhttp://www.tkk7.com/mlzry0612/articles/44927.html#Feedback0http://www.tkk7.com/mlzry0612/comments/commentRss/44927.htmlhttp://www.tkk7.com/mlzry0612/services/trackbacks/44927.html
Java 鐨勮繖涓鑳藉姏鍦ㄥ疄闄呭簲鐢ㄤ腑涔熻鐢ㄥ緱涓嶆槸寰堝錛屼絾鏄湪鍏跺畠鐨勭▼搴忚璁¤璦涓牴鏈氨涓嶅瓨鍦ㄨ繖涓鐗規с備緥濡傦紝Pascal銆丆 鎴栬?C++ 涓氨娌℃湁鍔炴硶鍦ㄧ▼搴忎腑鑾峰緱鍑芥暟瀹氫箟鐩稿叧鐨勪俊鎭?

JavaBean 鏄?reflection 鐨勫疄闄呭簲鐢ㄤ箣涓錛屽畠鑳借涓浜涘伐鍏峰彲瑙嗗寲鐨勬搷浣滆蔣浠剁粍浠躲傝繖浜涘伐鍏烽氳繃 reflection 鍔ㄦ佺殑杞藉叆騫跺彇寰?Java 緇勪歡(綾? 鐨勫睘鎬с?



1. 涓涓畝鍗曠殑渚嬪瓙

鑰冭檻涓嬮潰榪欎釜綆鍗曠殑渚嬪瓙錛岃鎴戜滑鐪嬬湅 reflection 鏄浣曞伐浣滅殑銆?

import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}

鎸夊涓嬭鍙ユ墽琛岋細

java DumpMethods java.util.Stack

瀹冪殑緇撴灉杈撳嚭涓猴細

public java.lang.Object java.util.Stack.push(java.lang.Object)

public synchronized java.lang.Object java.util.Stack.pop()

public synchronized java.lang.Object java.util.Stack.peek()

public boolean java.util.Stack.empty()

public synchronized int java.util.Stack.search(java.lang.Object)

榪欐牱灝卞垪鍑轟簡java.util.Stack 綾葷殑鍚勬柟娉曞悕浠ュ強瀹冧滑鐨勯檺鍒剁鍜岃繑鍥炵被鍨嬨?

榪欎釜紼嬪簭浣跨敤 Class.forName 杞藉叆鎸囧畾鐨勭被錛岀劧鍚庤皟鐢?getDeclaredMethods 鏉ヨ幏鍙栬繖涓被涓畾涔変簡鐨勬柟娉曞垪琛ㄣ俲ava.lang.reflect.Methods 鏄敤鏉ユ弿榪版煇涓被涓崟涓柟娉曠殑涓涓被銆?

2.寮濮嬩嬌鐢?Reflection

鐢ㄤ簬 reflection 鐨勭被錛屽 Method錛屽彲浠ュ湪 java.lang.relfect 鍖呬腑鎵懼埌銆備嬌鐢ㄨ繖浜涚被鐨勬椂鍊欏繀欏昏閬靛驚涓変釜姝ラ錛氱涓姝ユ槸鑾峰緱浣犳兂鎿嶄綔鐨勭被鐨?java.lang.Class 瀵硅薄銆傚湪榪愯涓殑 Java 紼嬪簭涓紝鐢?java.lang.Class 綾繪潵鎻忚堪綾誨拰鎺ュ彛絳夈?

涓嬮潰灝辨槸鑾峰緱涓涓?Class 瀵硅薄鐨勬柟娉曚箣涓錛?

Class c = Class.forName("java.lang.String");

榪欐潯璇彞寰楀埌涓涓?String 綾葷殑綾誨璞°傝繕鏈夊彟涓縐嶆柟娉曪紝濡備笅闈㈢殑璇彞錛?

Class c = int.class;

鎴栬?

Class c = Integer.TYPE;

瀹冧滑鍙幏寰楀熀鏈被鍨嬬殑綾諱俊鎭傚叾涓悗涓縐嶆柟娉曚腑璁塊棶鐨勬槸鍩烘湰綾誨瀷鐨勫皝瑁呯被 (濡?Integer) 涓鍏堝畾涔夊ソ鐨?TYPE 瀛楁銆?

絎簩姝ユ槸璋冪敤璇稿 getDeclaredMethods 鐨勬柟娉曪紝浠ュ彇寰楄綾諱腑瀹氫箟鐨勬墍鏈夋柟娉曠殑鍒楄〃銆?

涓鏃﹀彇寰楄繖涓俊鎭紝灝卞彲浠ヨ繘琛岀涓夋浜嗏斺斾嬌鐢?reflection API 鏉ユ搷浣滆繖浜涗俊鎭紝濡備笅闈㈣繖孌典唬鐮侊細

Class c = Class.forName("java.lang.String");

Method m[] = c.getDeclaredMethods();

System.out.println(m[0].toString());

瀹冨皢浠ユ枃鏈柟寮忔墦鍗板嚭 String 涓畾涔夌殑絎竴涓柟娉曠殑鍘熷瀷銆?

鍦ㄤ笅闈㈢殑渚嬪瓙涓紝榪欎笁涓楠ゅ皢涓轟嬌鐢?reflection 澶勭悊鐗規畩搴旂敤紼嬪簭鎻愪緵渚嬭瘉銆?

妯℃嫙 instanceof 鎿嶄綔絎?

寰楀埌綾諱俊鎭箣鍚庯紝閫氬父涓嬩竴涓楠ゅ氨鏄В鍐沖叧浜?Class 瀵硅薄鐨勪竴浜涘熀鏈殑闂銆備緥濡傦紝Class.isInstance 鏂規硶鍙互鐢ㄤ簬妯℃嫙 instanceof 鎿嶄綔絎︼細

class A {
}

public class instance1 {
public static void main(String args[]) {
try {
Class cls = Class.forName("A");
boolean b1 = cls.isInstance(new Integer(37));
System.out.println(b1);
boolean b2 = cls.isInstance(new A());
System.out.println(b2);
} catch (Throwable e) {
System.err.println(e);
}
}
}

鍦ㄨ繖涓緥瀛愪腑鍒涘緩浜嗕竴涓?A 綾葷殑 Class 瀵硅薄錛岀劧鍚庢鏌ヤ竴浜涘璞℃槸鍚︽槸 A 鐨勫疄渚嬨侷nteger(37) 涓嶆槸錛屼絾 new A() 鏄?

3.鎵懼嚭綾葷殑鏂規硶

鎵懼嚭涓涓被涓畾涔変簡浜涗粈涔堟柟娉曪紝榪欐槸涓涓潪甯告湁浠峰間篃闈炲父鍩虹鐨?reflection 鐢ㄦ硶銆備笅闈㈢殑浠g爜灝卞疄鐜頒簡榪欎竴鐢ㄦ硶錛?

import java.lang.reflect.*;

public class method1 {
private int f1(Object p, int x) throws NullPointerException {
if (p == null)
throw new NullPointerException();
return x;
}

public static void main(String args[]) {
try {
Class cls = Class.forName("method1");
Method methlist[] = cls.getDeclaredMethods();
for (int i = 0; i < methlist.length; i++) {
Method m = methlist[i];
System.out.println("name = " + m.getName());
System.out.println("decl class = " + m.getDeclaringClass());
Class pvec[] = m.getParameterTypes();
for (int j = 0; j < pvec.length; j++)
System.out.println("param #" + j + " " + pvec[j]);
Class evec[] = m.getExceptionTypes();
for (int j = 0; j < evec.length; j++)
System.out.println("exc #" + j + " " + evec[j]);
System.out.println("return type = " + m.getReturnType());
System.out.println("-----");
}
} catch (Throwable e) {
System.err.println(e);
}
}
}

榪欎釜紼嬪簭棣栧厛鍙栧緱 method1 綾葷殑鎻忚堪錛岀劧鍚庤皟鐢?getDeclaredMethods 鏉ヨ幏鍙栦竴緋誨垪鐨?Method 瀵硅薄錛屽畠浠垎鍒弿榪頒簡瀹氫箟鍦ㄧ被涓殑姣忎竴涓柟娉曪紝鍖呮嫭 public 鏂規硶銆乸rotected 鏂規硶銆乸ackage 鏂規硶鍜?private 鏂規硶絳夈傚鏋滀綘鍦ㄧ▼搴忎腑浣跨敤 getMethods 鏉ヤ唬鏇?getDeclaredMethods錛屼綘榪樿兘鑾峰緱緇ф壙鏉ョ殑鍚勪釜鏂規硶鐨勪俊鎭?

鍙栧緱浜?Method 瀵硅薄鍒楄〃涔嬪悗錛岃鏄劇ず榪欎簺鏂規硶鐨勫弬鏁扮被鍨嬨佸紓甯哥被鍨嬪拰榪斿洖鍊肩被鍨嬬瓑灝變笉闅句簡銆傝繖浜涚被鍨嬫槸鍩烘湰綾誨瀷榪樻槸綾葷被鍨嬶紝閮藉彲浠ョ敱鎻忚堪綾葷殑瀵硅薄鎸夐『搴忕粰鍑恒?

杈撳嚭鐨勭粨鏋滃涓嬶細

name = f1

decl class = class method1

param #0 class java.lang.Object

param #1 int

exc #0 class java.lang.NullPointerException

return type = int

-----

name = main

decl class = class method1

param #0 class [Ljava.lang.String;

return type = void

-----


4.鑾峰彇鏋勯犲櫒淇℃伅

鑾峰彇綾繪瀯閫犲櫒鐨勭敤娉曚笌涓婅堪鑾峰彇鏂規硶鐨勭敤娉曠被浼鹼紝濡傦細

import java.lang.reflect.*;

public class constructor1 {
public constructor1() {
}

protected constructor1(int i, double d) {
}

public static void main(String args[]) {
try {
Class cls = Class.forName("constructor1");
Constructor ctorlist[] = cls.getDeclaredConstructors();
for (int i = 0; i < ctorlist.length; i++) {
Constructor ct = ctorlist[i];
System.out.println("name = " + ct.getName());
System.out.println("decl class = " + ct.getDeclaringClass());
Class pvec[] = ct.getParameterTypes();
for (int j = 0; j < pvec.length; j++)
System.out.println("param #" + j + " " + pvec[j]);
Class evec[] = ct.getExceptionTypes();
for (int j = 0; j < evec.length; j++)
System.out.println("exc #" + j + " " + evec[j]);
System.out.println("-----");
}
} catch (Throwable e) {
System.err.println(e);
}
}
}

榪欎釜渚嬪瓙涓病鑳借幏寰楄繑鍥炵被鍨嬬殑鐩稿叧淇℃伅錛岄偅鏄洜涓烘瀯閫犲櫒娌℃湁榪斿洖綾誨瀷銆?

榪欎釜紼嬪簭榪愯鐨勭粨鏋滄槸錛?

name = constructor1

decl class = class constructor1

-----

name = constructor1

decl class = class constructor1

param #0 int

param #1 double

-----

5.鑾峰彇綾葷殑瀛楁(鍩?

鎵懼嚭涓涓被涓畾涔変簡鍝簺鏁版嵁瀛楁涔熸槸鍙兘鐨勶紝涓嬮潰鐨勪唬鐮佸氨鍦ㄥ共榪欎釜浜嬫儏錛?


import java.lang.reflect.*;

public class field1 {
private double d;
public static final int i = 37;
String s = "testing";

public static void main(String args[]) {
try {
Class cls = Class.forName("field1");
Field fieldlist[] = cls.getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
System.out.println("name = " + fld.getName());
System.out.println("decl class = " + fld.getDeclaringClass());
System.out.println("type = " + fld.getType());
int mod = fld.getModifiers();
System.out.println("modifiers = " + Modifier.toString(mod));
System.out.println("-----");
}
} catch (Throwable e) {
System.err.println(e);
}
}
} [page]

榪欎釜渚嬪瓙鍜屽墠闈㈤偅涓緥瀛愰潪甯哥浉浼箋備緥涓嬌鐢ㄤ簡涓涓柊涓滆タ Modifier錛屽畠涔熸槸涓涓?reflection 綾伙紝鐢ㄦ潵鎻忚堪瀛楁鎴愬憳鐨勪慨楗拌錛屽鈥減rivate int鈥濄傝繖浜涗慨楗拌鑷韓鐢辨暣鏁版弿榪幫紝鑰屼笖浣跨敤 Modifier.toString 鏉ヨ繑鍥炰互鈥滃畼鏂光濋『搴忔帓鍒楃殑瀛楃涓叉弿榪?(濡傗渟tatic鈥濆湪鈥渇inal鈥濅箣鍓?銆傝繖涓▼搴忕殑杈撳嚭鏄細

name = d

decl class = class field1

type = double

modifiers = private

-----

name = i

decl class = class field1

type = int

modifiers = public static final

-----

name = s

decl class = class field1

type = class java.lang.String

modifiers =

-----

鍜岃幏鍙栨柟娉曠殑鎯呭喌涓涓嬶紝鑾峰彇瀛楁鐨勬椂鍊欎篃鍙互鍙彇寰楀湪褰撳墠綾諱腑鐢蟲槑浜嗙殑瀛楁淇℃伅 (getDeclaredFields)錛屾垨鑰呬篃鍙互鍙栧緱鐖剁被涓畾涔夌殑瀛楁 (getFields) 銆?


6.鏍規嵁鏂規硶鐨勫悕縐版潵鎵ц鏂規硶

鏂囨湰鍒拌繖閲岋紝鎵涓劇殑渚嬪瓙鏃犱竴渚嬪閮戒笌濡備綍鑾峰彇綾葷殑淇℃伅鏈夊叧銆傛垜浠篃鍙互鐢?reflection 鏉ュ仛涓浜涘叾瀹冪殑浜嬫儏錛屾瘮濡傛墽琛屼竴涓寚瀹氫簡鍚嶇О鐨勬柟娉曘備笅闈㈢殑紺轟緥婕旂ず浜嗚繖涓鎿嶄綔錛?

import java.lang.reflect.*;
public class method2 {
public int add(int a, int b) {
return a + b;
}
public static void main(String args[]) {
try {
Class cls = Class.forName("method2");
Class partypes[] = new Class[2];
partypes[0] = Integer.TYPE;
partypes[1] = Integer.TYPE;
Method meth = cls.getMethod("add", partypes);
method2 methobj = new method2();
Object arglist[] = new Object[2];
arglist[0] = new Integer(37);
arglist[1] = new Integer(47);
Object retobj = meth.invoke(methobj, arglist);
Integer retval = (Integer) retobj;
System.out.println(retval.intValue());
} catch (Throwable e) {
System.err.println(e);
}
}
}

鍋囧涓涓▼搴忓湪鎵ц鐨勬煇澶勭殑鏃跺欐墠鐭ラ亾闇瑕佹墽琛屾煇涓柟娉曪紝榪欎釜鏂規硶鐨勫悕縐版槸鍦ㄧ▼搴忕殑榪愯榪囩▼涓寚瀹氱殑 (渚嬪錛孞avaBean 寮鍙戠幆澧冧腑灝變細鍋氳繖鏍風殑浜?錛岄偅涔堜笂闈㈢殑紼嬪簭婕旂ず浜嗗浣曞仛鍒般?

涓婁緥涓紝getMethod 鐢ㄤ簬鏌ユ壘涓涓叿鏈変袱涓暣鍨嬪弬鏁頒笖鍚嶄負 add 鐨勬柟娉曘傛壘鍒拌鏂規硶騫跺垱寤轟簡鐩稿簲鐨?Method 瀵硅薄涔嬪悗錛屽湪姝g‘鐨勫璞″疄渚嬩腑鎵ц瀹冦傛墽琛岃鏂規硶鐨勬椂鍊欙紝闇瑕佹彁渚涗竴涓弬鏁板垪琛紝榪欏湪涓婁緥涓槸鍒嗗埆鍖呰浜嗘暣鏁?37 鍜?47 鐨勪袱涓?Integer 瀵硅薄銆傛墽琛屾柟娉曠殑榪斿洖鐨勫悓鏍鋒槸涓涓?Integer 瀵硅薄錛屽畠灝佽浜嗚繑鍥炲?84銆?

7.鍒涘緩鏂扮殑瀵硅薄

瀵逛簬鏋勯犲櫒錛屽垯涓嶈兘鍍忔墽琛屾柟娉曢偅鏍瘋繘琛岋紝鍥犱負鎵ц涓涓瀯閫犲櫒灝辨剰鍛崇潃鍒涘緩浜嗕竴涓柊鐨勫璞?(鍑嗙‘鐨勮錛屽垱寤轟竴涓璞$殑榪囩▼鍖呮嫭鍒嗛厤鍐呭瓨鍜屾瀯閫犲璞?銆傛墍浠ワ紝涓庝笂渚嬫渶鐩鎬技鐨勪緥瀛愬涓嬶細

import java.lang.reflect.*;

public class constructor2 {
public constructor2() {
}

public constructor2(int a, int b) {
System.out.println("a = " + a + " b = " + b);
}

public static void main(String args[]) {
try {
Class cls = Class.forName("constructor2");
Class partypes[] = new Class[2];
partypes[0] = Integer.TYPE;
partypes[1] = Integer.TYPE;
Constructor ct = cls.getConstructor(partypes);
Object arglist[] = new Object[2];
arglist[0] = new Integer(37);
arglist[1] = new Integer(47);
Object retobj = ct.newInstance(arglist);
} catch (Throwable e) {
System.err.println(e);
}
}
}

鏍規嵁鎸囧畾鐨勫弬鏁扮被鍨嬫壘鍒扮浉搴旂殑鏋勯犲嚱鏁板茍鎵ц瀹冿紝浠ュ垱寤轟竴涓柊鐨勫璞″疄渚嬨備嬌鐢ㄨ繖縐嶆柟娉曞彲浠ュ湪紼嬪簭榪愯鏃跺姩鎬佸湴鍒涘緩瀵硅薄錛岃屼笉鏄湪緙栬瘧鐨勬椂鍊欏垱寤哄璞★紝榪欎竴鐐歸潪甯告湁浠峰箋?

8.鏀瑰彉瀛楁(鍩?鐨勫?

reflection 鐨勮繕鏈変竴涓敤澶勫氨鏄敼鍙樺璞℃暟鎹瓧孌電殑鍊箋俽eflection 鍙互浠庢鍦ㄨ繍琛岀殑紼嬪簭涓牴鎹悕縐版壘鍒板璞$殑瀛楁騫舵敼鍙樺畠錛屼笅闈㈢殑渚嬪瓙鍙互璇存槑榪欎竴鐐癸細

import java.lang.reflect.*;

public class field2 {
public double d;

public static void main(String args[]) {
try {
Class cls = Class.forName("field2");
Field fld = cls.getField("d");
field2 f2obj = new field2();
System.out.println("d = " + f2obj.d);
fld.setDouble(f2obj, 12.34);
System.out.println("d = " + f2obj.d);
} catch (Throwable e) {
System.err.println(e);
}
}
}

榪欎釜渚嬪瓙涓紝瀛楁 d 鐨勫艱鍙樹負浜?12.34銆?

9.浣跨敤鏁扮粍

鏈枃浠嬬粛鐨?reflection 鐨勬渶鍚庝竴縐嶇敤娉曟槸鍒涘緩鐨勬搷浣滄暟緇勩傛暟緇勫湪 Java 璇█涓槸涓縐嶇壒孌婄殑綾葷被鍨嬶紝涓涓暟緇勭殑寮曠敤鍙互璧嬬粰 Object 寮曠敤銆傝瀵熶笅闈㈢殑渚嬪瓙鐪嬬湅鏁扮粍鏄庝箞宸ヤ綔鐨勶細

import java.lang.reflect.*;

public class array1 {
public static void main(String args[]) {
try {
Class cls = Class.forName("java.lang.String");
Object arr = Array.newInstance(cls, 10);
Array.set(arr, 5, "this is a test");
String s = (String) Array.get(arr, 5);
System.out.println(s);
} catch (Throwable e) {
System.err.println(e);
}
}
}

渚嬩腑鍒涘緩浜?10 涓崟浣嶉暱搴︾殑 String 鏁扮粍錛屼負絎?5 涓綅緗殑瀛楃涓茶祴浜嗗鹼紝鏈鍚庡皢榪欎釜瀛楃涓蹭粠鏁扮粍涓彇寰楀茍鎵撳嵃浜嗗嚭鏉ャ?

涓嬮潰榪欐浠g爜鎻愪緵浜嗕竴涓洿澶嶆潅鐨勪緥瀛愶細

import java.lang.reflect.*;

public class array2 {
public static void main(String args[]) {
int dims[] = new int[]{5, 10, 15};
Object arr = Array.newInstance(Integer.TYPE, dims);
Object arrobj = Array.get(arr, 3);
Class cls = arrobj.getClass().getComponentType();
System.out.println(cls);
arrobj = Array.get(arrobj, 5);
Array.setInt(arrobj, 10, 37);
int arrcast[][][] = (int[][][]) arr;
System.out.println(arrcast[3][5][10]);
}
}
渚嬩腑鍒涘緩浜嗕竴涓?5 x 10 x 15 鐨勬暣鍨嬫暟緇勶紝騫朵負澶勪簬 [3][5][10] 鐨勫厓绱犺祴浜嗗間負 37銆傛敞鎰忥紝澶氱淮鏁扮粍瀹為檯涓婂氨鏄暟緇勭殑鏁扮粍錛屼緥濡傦紝絎竴涓?Array.get 涔嬪悗錛宎rrobj 鏄竴涓?10 x 15 鐨勬暟緇勩傝繘鑰屽彇寰楀叾涓殑涓涓厓绱狅紝鍗抽暱搴︿負 15 鐨勬暟緇勶紝騫朵嬌鐢?Array.setInt 涓哄畠鐨勭 10 涓厓绱犺祴鍊箋?

娉ㄦ剰鍒涘緩鏁扮粍鏃剁殑綾誨瀷鏄姩鎬佺殑錛屽湪緙栬瘧鏃跺茍涓嶇煡閬撳叾綾誨瀷銆?

10.灝忕粨

Java reflection 闈炲父鏈夌敤錛屽畠浣跨被鍜屾暟鎹粨鏋勮兘鎸夊悕縐板姩鎬佹绱㈢浉鍏充俊鎭紝騫跺厑璁稿湪榪愯鐫鐨勭▼搴忎腑鎿嶄綔榪欎簺淇℃伅銆侸ava 鐨勮繖涓鐗規ч潪甯稿己澶э紝騫朵笖鏄叾瀹冧竴浜涘父璇█錛屽 C銆丆++銆丗ortran 鎴栬?Pascal 絳夐兘涓嶅叿澶囩殑銆?br />


Daniel 2006-05-07 23:48 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲AV综合色一区二区三区| 亚洲?V乱码久久精品蜜桃| 亚洲国产成人久久综合一| 福利免费在线观看| 在线观看亚洲精品福利片| 羞羞视频免费网站日本| 中文字幕精品亚洲无线码二区| 三级片免费观看久久| 亚洲精品黄色视频在线观看免费资源| 国产亚洲视频在线观看网址| 午夜亚洲国产成人不卡在线| 爱情岛论坛免费视频| 亚洲AⅤ优女AV综合久久久| 国产免费久久精品丫丫| 亚洲成AV人片在线观看无| 精品四虎免费观看国产高清午夜| 亚洲资源在线观看| 在线a级毛片免费视频| 亚洲AV无码男人的天堂| 亚洲成a人在线看天堂无码| 中国黄色免费网站| 亚洲视频在线观看网站| 成人免费看吃奶视频网站| 看成年女人免费午夜视频| 中国亚洲女人69内射少妇| 91精品国产免费网站| 亚洲国产精品无码久久98| 亚洲无码黄色网址| 日韩av无码久久精品免费| 亚洲欧美国产精品专区久久| 亚洲人成色77777在线观看大| 久久久久久久99精品免费观看| 亚洲免费视频网址| 亚洲国产精品综合久久网络 | 中文字幕在线免费播放| 亚洲国产成人精品无码区在线观看 | 亚洲成色www久久网站夜月| 无码国产精品一区二区免费| 男女超爽视频免费播放| 久久亚洲熟女cc98cm| 全亚洲最新黄色特级网站|