bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

java代碼反射實例下載 通俗理解java反射舉例子

JAVA中反射是什么

JAVA中反射是動態獲取信息以及動態調用對象方法的一種反射機制。

成都創新互聯公司主營桂東網站建設的網絡公司,主營網站建設方案,成都App制作,桂東h5小程序定制開發搭建,桂東網站營銷推廣歡迎桂東等地區企業咨詢

Java反射就是在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意方法和屬性;并且能改變它的屬性。而這也是Java被視為動態語言的一個關鍵性質。

Java反射的功能是在運行時判斷任意一個對象所屬的類,在運行時構造任意一個類的對象,在運行時判斷任意一個類所具有的成員變量和方法,在運行時調用任意一個對象的方法,生成動態代理。

擴展資料:

JAVA中反射實例:

1、Class superClass=clazz.getSuperclass();//獲取父類。

System.out.println("getSuperclass:"+superClass)。? ?

2、Class[] interfaces=clazz.getInterfaces();//獲取實現接口。

System.out.println("getInterfaces:"+interfaces.length)。

3、Constructor[] cons=clazz.getConstructors();//構造方法。

System.out.println("getConstructors:"+cons.length)。

參考資料來源:百度百科: JAVA反射機制

java反射機制實例

import java.lang.reflect.Method;

public class InvokeTester

{

public int add(int param1, int param2)

{

return param1 + param2;

}

public String echo(String message)

{

return "hello: " + message;

}

public static void main(String[] args) throws Exception

{

Class? classType = InvokeTester.class;

Object invokeTester = classType.newInstance();

// System.out.println(invokeTester instanceof InvokeTester); //返回true

Method addMethod = classType.getMethod("add", new Class[] { int.class,int.class }); //第二個形參表示指定的add方法要接收為int的類型的兩個參數

Object result = addMethod.invoke(invokeTester, new Object[]{1, 2}); //反射調用,將1,2傳入InvokeTester.Class的實例invokeTester里的add方法。得返回的結果。

System.out.println((Integer)result);

System.out.println("---------------------");

Method echoMethod = classType.getMethod("echo", new Class[]{String.class});

Object result2 = echoMethod.invoke(invokeTester, new Object[]{"tom"});

System.out.println((String)result2);

}

}

Java如何實現反射靜態加載和動態加載實例代碼詳解

1.Java動態加載類和靜態加載類的區別

new創建對象的方式稱作為靜態加載,而使用Class.forName("XXX")稱作為動態加載,它們倆本質的區別在于靜態加載的類的源程序在編譯時期加載(必須存在),而動態加載的類在編譯時期可以缺席(源程序不必存在)。

2.為什么需要動態加載類

對于我自己的理解,動態加載類增加了程序的靈活性。比如一個程序中有50個功能,但你可能只會使用其中的一個,如果你用的是靜態加載的方式,你必須在編譯前提供100個功能的所有定義,否則無法編譯通過,若你使用的是動態加載機制,則不需要如此大費周章,用哪一個就定義哪一個即可。

靜態加載:

public class Office_Static {

public static void main(String[] args) {

//new 創建對象,是靜態加載類,在編譯時刻就需要加載所有的可能使用到的類

if("Word".equals(args[0])){

Word w = new Word();

w.start();

}

if("Excel".equals(args[0])){

Excel e = new Excel();

e.start();

}

}

}

這個程序編譯時必須有Word和Excel這兩個類存在才行,即使判斷后用不到Excel也要加載

動態加載:

接口OfficeAble :

public interface OfficeAble {

public void start();}

用java實現類和對象的反射,代碼最好有注釋,謝謝

給你一個小的實例代碼:

import java.lang.reflect.Method;

import java.lang.reflect.InvocationTargetException;

public class test {

public static void main(String args[]) throws NoSuchMethodException,

IllegalAccessException, InvocationTargetException {

Foo foo = new Foo("這個一個Foo對象!");

Class clazz = foo.getClass();

Method m1 = clazz.getDeclaredMethod("outInfo");

Method m2 = clazz.getDeclaredMethod("setMsg", String.class);

Method m3 = clazz.getDeclaredMethod("getMsg");

m1.invoke(foo);

m2.invoke(foo, "重新設置msg信息!");

String msg = (String) m3.invoke(foo);

System.out.println(msg);

}

}

class Foo {

private String msg;

public Foo(String msg) {

this.msg = msg;

}

public void setMsg(String msg) {

this.msg = msg;

}

public String getMsg() {

return msg;

}

public void outInfo() {

System.out.println("這是測試Java反射的測試類");

}

}

網站標題:java代碼反射實例下載 通俗理解java反射舉例子
地址分享:http://vcdvsql.cn/article22/hephjc.html

成都網站建設公司_創新互聯,為您提供外貿網站建設網站改版網站設計公司網站導航自適應網站網站設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作