最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)創(chuàng)建運行時類的對象操作示例

 更新時間:2018年08月25日 12:18:46   作者:u013063153  
這篇文章主要介紹了Java實現(xiàn)創(chuàng)建運行時類的對象操作,結(jié)合實例形式分析了Java動態(tài)創(chuàng)建對象的原理與相關實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)創(chuàng)建運行時類的對象操作。分享給大家供大家參考,具體如下:

獲取運行時類的方法:

public void test() throws ClassNotFoundException {
    /*
     * Class類是反射的源頭
     * 創(chuàng)建一個類,通過編譯(javac.exe),生成對應的.class文件,之后使用java.exe加載(JVM的類加載器完成的)此.class文件。
     * 此.class文件加載到內(nèi)存后,就是一個運行時類,存放在緩存區(qū)。
     * 那么這個運行時類本身就是一個Class的實例。
     * 1.每一個運行時類只加載一次;
     * 2.有了Class的實例后,可以進行如下操作:
     *  1>創(chuàng)建對應的運行時類的對象
     *  2>獲取對應的運行類的完整結(jié)構(gòu)(屬性、方法、構(gòu)造器、內(nèi)部類、父類、所在的包、異常、注解、...)
     *  3>調(diào)用對應的運行時類指定的結(jié)構(gòu)(屬性、方法、構(gòu)造器)
     *  4>反射的應用:動態(tài)代理
     */
    //1.調(diào)用運行時類本身的.class屬性
    Class clazz1 = Person.class;
    //2.通過運行時類的對象獲取
    Person p = new Person();
    Class clazz2 = p.getClass();
    //3.通過Class的靜態(tài)方法獲取
    String className = "com.test.Person";
    Class clazz3 = Class.forName(className);
//    clazz3.newInstance();
    //4.通過類的加載器
    ClassLoader classLoader = this.getClass().getClassLoader();
    Class clazz4 = classLoader.loadClass(className);
    System.out.println(clazz1 == clazz4); //true 即只加載一次
    System.out.println(clazz2 == clazz3); //true

創(chuàng)建運行時類的對象:

public class TestConstructor {
  public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
    String className = "com.test.Person";
    Class clazz = Class.forName(className);
    //創(chuàng)建對應的運行時類的對象,使用newInstance()方法,就是調(diào)用了運行時類的空參構(gòu)造器
   //要想能夠創(chuàng)建成功:1.要求對應的運行時類要有空參的構(gòu)造器;2.構(gòu)造器的權(quán)限修飾符的權(quán)限要足夠
  Object obj = clazz.newInstance();
    Person p = (Person)obj;
  }
}

更多java相關內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O計入門與進階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • spring retry 配置及使用教程

    spring retry 配置及使用教程

    這篇文章主要介紹了spring retry 配置及使用教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • mybatisPlus中apply的使用以進行聯(lián)表等復雜sql語句詳解

    mybatisPlus中apply的使用以進行聯(lián)表等復雜sql語句詳解

    在MyBatis-Plus中,`apply()`方法可以用于添加任意的SQL片段,包括聯(lián)表查詢,使用`apply()`方法的好處是可以直接添加原生的SQL片段,而不受MyBatis-Plus提供的常規(guī)查詢條件構(gòu)建方法的限制,但是,使用`apply()`方法需要注意安全性和性能問題
    2025-03-03
  • 最新評論

    大安市| 昌宁县| 阿尔山市| 中阳县| 新丰县| 元谋县| 吉木萨尔县| 翼城县| 哈尔滨市| 新和县| 新乐市| 准格尔旗| 平原县| 武定县| 盐亭县| 东阿县| 安阳市| 鄂尔多斯市| 军事| 兴安盟| 建平县| 霸州市| 云南省| 阳信县| 高邮市| 木里| 华蓥市| 内江市| 二连浩特市| 绥芬河市| 永和县| 桐柏县| 绿春县| 青州市| 土默特左旗| 东乌珠穆沁旗| 固镇县| 麻江县| 新巴尔虎右旗| 旌德县| 凉山|