成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

樂字節(jié)Java反射之一:反射概念與獲取反射源頭class

caikeal / 3373人閱讀

摘要:一反射機制概念程序運行時,允許改變程序結(jié)構(gòu)或變量類型,這種語言稱為動態(tài)語言,如,是動態(tài)語言顯然,,不是動態(tài)語言,但是有著一個非常突出的動態(tài)相關(guān)機制。相關(guān)的為二獲取源頭重點打開權(quán)限所有類的對象其實都是的實例。

一、Java反射機制概念

“程序運行時,允許改變程序結(jié)構(gòu)或變量類型,這種語言稱為動態(tài)語言”,如Python,

Ruby是動態(tài)語言;顯然C++,Java,C#不是動態(tài)語言,但是JAVA有著一個非常突出

的動態(tài)相關(guān)機制:Reflection。

JAVA反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方

法;對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性;這種動態(tài)獲取的信息以

及動態(tài)調(diào)用對象的方法的功能稱為java語言的反射機制。如

/**
 * 入門級示例:通過對象獲取  包名.類名
 * @author Administrator
 */
public class Simple {
 public static void main(String[] args) {
  Simple s=new Simple();
  System.out.println(s.getClass().getName());
 }
}

Java反射機制,可以實現(xiàn)以下功能:

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

②在運行時構(gòu)造任意一個類的對象;

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

④在運行時調(diào)用任意一個對象的方法;

⑤生成動態(tài)代理。

相關(guān)的api為

二、 獲取源頭Class(重點)

打開權(quán)限:

add.setAccessible(true);

所有類的對象其實都是Class的實例。這個Class實例可以理解為類的模子,就是包含了類的結(jié)構(gòu)信息,類似于圖紙。我們?nèi)粘I钪?,需要?chuàng)造一個產(chǎn)品,如想山寨一個iphone手機,怎么辦?

有三種方式可以實現(xiàn):

⑴買個iphone手機,拆的七零八落的,開始山寨;

⑵到iphone工廠參觀,拿到iphone磨具,開始山寨;

⑶跑到美國盜取iphone的圖紙,開始山寨,最后一種最暴力,最爽。

序列化:實現(xiàn)serializable接口,

反序列化

克隆:實現(xiàn)cloneable接口,重寫clone()方法,修改權(quán)限為public

New 反射

同理,獲取類的class對象,也有三種方式:

①Class.forName(”包名.類名”)//一般盡量采用該形式

②類.class

③對象.getClass()

示例如下:

public class Source {
    public static void main(String[] args) {
        //第一種方式:對象.class
        Source s=new Source();
        Classc1=s.getClass();
        //第二種方式:類.class
        Classc2=Source.class;
        //第三種方式(推薦方式):Class.forName()
        Classc3=null;
        try {
            c3=Class.forName("com.shsxt.ref.simple.Source");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println(c1.getName());
        System.out.println(c2.getName());
        System.out.println(c3.getName());
    }
}

有了class對象,我們就有了一切,這就是反射的源頭,接下來就是“庖丁解牛”。

歡迎繼續(xù)關(guān)注樂字節(jié)Java課程,樂字節(jié)原創(chuàng),學(xué)Java,小樂來幫您。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75188.html

相關(guān)文章

  • 字節(jié)Java反射之二:實例化對象、接口父類、修飾符和屬性

    摘要:大家好,小樂繼續(xù)接著上集樂字節(jié)反射之一反射概念與獲取反射源頭這次是之二實例化對象接口與父類修飾符和屬性一實例化對象之前我們講解過創(chuàng)建對象的方式有克隆反序列化,再加一種,根據(jù)對象,使用或者構(gòu)造器實例化對象。 大家好,小樂繼續(xù)接著上集:樂字節(jié)Java反射之一:反射概念與獲取反射源頭Class 這次是之二:實例化對象、接口與父類、修飾符和屬性 一:實例化對象 之前我們講解過創(chuàng)建對象的方式,有...

    xietao3 評論0 收藏0
  • 字節(jié)Java反射之四:反射相關(guān)操作

    摘要:大家好,樂字節(jié)小樂繼續(xù)為初學(xué)者講述基礎(chǔ)知識。上次說到樂字節(jié)反射之三方法數(shù)組類加載器,這次是反射之四反射相關(guān)操作操作屬性獲取對象獲取對象設(shè)置屬性打開權(quán)限獲取此屬性調(diào)用方法調(diào)用方法,都是直接對象方法實參反射之后,動態(tài)調(diào)用方法需要使用即可。 大家好,樂字節(jié)小樂繼續(xù)為Java初學(xué)者講述Java基礎(chǔ)知識。上次說到樂字節(jié)Java反射之三:方法、數(shù)組、類加載器,這次是Java反射之四:反射相關(guān)操作 ...

    DevYK 評論0 收藏0
  • 字節(jié)Java反射之三:方法、數(shù)組、類加載器和類的生命周期

    摘要:本文承接上一篇樂字節(jié)發(fā)射之二實例化對象接口與父類修飾符和屬性繼續(xù)講述反射之三方法數(shù)組類加載器一方法獲取所有方法包括父類或接口,使用即可。當沒有任何引用指向?qū)ο髸r就會被卸載,結(jié)束類的生命周期。 本文承接上一篇:樂字節(jié)Java發(fā)射之二:實例化對象、接口與父類、修飾符和屬性 繼續(xù)講述Java反射之三:方法、數(shù)組、類加載器 一、方法 獲取所有方法(包括父類或接口),使用Method即可。sho...

    ChanceWong 評論0 收藏0
  • Java注解-注解處理器、servlet3.0|字節(jié)

    摘要:擴展了反射機制的,以幫助程序員快速的構(gòu)造自定義注解處理器。返回該程序元素上存在的所有注解。在中,可以使用注解將一個繼承于的類標注為可以處理用戶請求的。 大家好,我是樂字節(jié)的小樂,上次給大家?guī)砹薐ava注解-元數(shù)據(jù)、注解分類、內(nèi)置注解和自定義注解|樂字節(jié),這次接著往下講注解處理器和servlet3.0showImg(https://segmentfault.com/img/bVbvBP...

    wangshijun 評論0 收藏0
  • Reflection:Java反射機制的應(yīng)用場景

    近期在維護公司項目的時候遇到一個問題,因為實體類中的 set 方法涉及到了業(yè)務(wù)邏輯,因此在給對象賦值的過程中不能夠使用 set 方法,為了實現(xiàn)功能,所以采用了反射的機制給對象屬性賦值,借此機會也了解了反射的一些具體用法和使用場景,分以下兩點對反射進行分析: 反射的優(yōu)勢和劣勢 反射的應(yīng)用場景 反射的優(yōu)勢和劣勢 ??個人理解,反射機制實際上就是上帝模式,如果說方法的調(diào)用是 Java 正確的打開方式...

    浠ラ箍 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<