JAVA基礎部分複習(五、JAVA反射)

來源:互聯網
上載者:User

標籤:anim   div   構造   私人   animal   使用   北京   str   string   

關於反射:

1.需要瞭解jvm類的載入機制(java進階部分會詳細介紹)

2.反射的API其實只要多看看API和源碼,很容易就懂了。

下面是代碼,簡單講解反射的使用:

import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;/** * JAVA反射機制(首先對於反射,建議大家去看一下javaapi,要懂得看源碼,這樣才能更深入瞭解反射的原理,並且能很好的在工作中使用) * 定義: * JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法和屬性; * 這種動態擷取的資訊以及動態調用對象的方法的功能稱為java語言的反射機制。 * @author dyq * */public class ReflexTest {    public static void main(String[] args) {        try {            /**             * 返回一個運行時的class對象             */            Class<?> classAnimal = Class.forName("cn.review.day03.entity.Animal");            /**             * 建立由此類對象表示的類的新執行個體             */            Object object = classAnimal.newInstance();                        /**             * 擷取所有構造方法             */            Constructor<?>[] constructors = classAnimal.getConstructors();            for(int i=0;i<constructors.length;i++) {                System.out.println(constructors[i]);            }            /**             * 擷取類對象中的方法,並調用該方法             */            classAnimal.getMethod("setName",String.class).invoke(object, "大象");            classAnimal.getMethod("setAddress",String.class).invoke(object, "北京");            classAnimal.getMethod("setCount",int.class).invoke(object, 20);            Method method = classAnimal.getMethod("getMyString");            System.out.println((String)method.invoke(object));            /**             * 擷取共有屬性方法getFields             * 擷取私人屬性方法getDeclaredFields             */            Field[] fields = classAnimal.getDeclaredFields();            for(int i=0;i<fields.length;i++) {                Field field = fields[i];                System.out.println(field);            }                    } catch (Exception e) {            e.printStackTrace();        }    }}

 

JAVA基礎部分複習(五、JAVA反射)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.