Java鍙嶅皠浠嬬粛

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java鍙嶅皠浠嬬粛相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/%e6%96%b9%e5%bc%8f' title='鏂瑰紡'>鏂瑰紡   struct   瀹炵幇   璇█   ofo   obj   ble   鏁版嵁   杩愯   

涓€銆佸弽灏勭殑姒傝堪

JAVA鍙嶅皠鏈哄埗鏄湪杩愯鐘舵€佷腑锛屽浜庝换鎰忎竴涓被锛岄兘鑳藉鐭ラ亾杩欎釜绫荤殑鎵€鏈夊睘鎬у拰鏂规硶锛涘浜庝换鎰忎竴涓璞★紝閮借兘澶熻皟鐢ㄥ畠鐨勪换鎰忎竴涓柟娉曞拰灞炴€э紱杩欑鍔ㄦ€佽幏鍙栫殑淇℃伅浠ュ強鍔ㄦ€佽皟鐢ㄥ璞$殑鏂规硶鐨勫姛鑳界О涓簀ava璇█鐨勫弽灏勬満鍒躲€?br />瑕佹兂瑙e墫涓€涓被,蹇呴』鍏堣鑾峰彇鍒拌绫荤殑瀛楄妭鐮佹枃浠跺璞°€傝€岃В鍓栦娇鐢ㄧ殑灏辨槸Class绫讳腑鐨勬柟娉?鎵€浠ュ厛瑕佽幏鍙栧埌姣忎竴涓瓧鑺傜爜鏂囦欢瀵瑰簲鐨凜lass绫诲瀷鐨勫璞?


浠ヤ笂鐨勬€荤粨灏辨槸浠€涔堟槸鍙嶅皠
鍙嶅皠灏辨槸鎶妀ava绫讳腑鐨勫悇绉嶆垚鍒嗘槧灏勬垚涓€涓釜鐨凧ava瀵硅薄
渚嬪锛氫竴涓被鏈夛細鎴愬憳鍙橀噺銆佹柟娉曘€佹瀯閫犳柟娉曘€佸寘绛夌瓑淇℃伅锛屽埄鐢ㄥ弽灏勬妧鏈彲浠ュ涓€涓被杩涜瑙e墫锛屾妸涓釜缁勬垚閮ㄥ垎鏄犲皠鎴愪竴涓釜瀵硅薄銆傦紙鍏跺疄锛氫竴涓被涓繖浜涙垚鍛樻柟娉曘€佹瀯閫犳柟娉曘€佸湪鍔犲叆绫讳腑閮芥湁涓€涓被鏉ユ弿杩帮級
濡傚浘鏄被鐨勬甯稿姞杞借繃绋嬶細鍙嶅皠鐨勫師鐞嗗湪涓巆lass瀵硅薄銆?br />鐔熸倝涓€涓嬪姞杞界殑鏃跺€欙細Class瀵硅薄鐨勭敱鏉ユ槸灏哻lass鏂囦欢璇诲叆鍐呭瓨锛屽苟涓轰箣鍒涘缓涓€涓狢lass瀵硅薄銆?/p>

鎶€鏈浘鐗? src=

浜屻€?a id="cb_post_title_url" href="https://www.cnblogs.com/buoge/p/9285142.html" rel="nofollow">Java涓负浠€涔堥渶瑕佸弽灏勶紵鍙嶅皠瑕佽В鍐充粈涔堥棶棰橈紵

Java涓紪璇戠被鍨嬫湁涓ょ锛?/p>

  • 闈欐€佺紪璇戯細鍦ㄧ紪璇戞椂纭畾绫诲瀷锛岀粦瀹氬璞″嵆閫氳繃銆?/li>
  • 鍔ㄦ€佺紪璇戯細杩愯鏃剁‘瀹氱被鍨嬶紝缁戝畾瀵硅薄銆傚姩鎬佺紪璇戞渶澶ч檺搴﹀湴鍙戞尌浜咼ava鐨勭伒娲绘€э紝浣撶幇浜嗗鎬佺殑搴旂敤锛屽彲浠ュ噺浣庣被涔嬮棿鐨勮€﹀悎鎬с€?/li>

Java鍙嶅皠鏄疛ava琚涓哄姩鎬侊紙鎴栧噯鍔ㄦ€侊級璇█鐨勪竴涓叧閿€ц川銆傝繖涓満鍒跺厑璁哥▼搴忓湪杩愯鏃堕€忚繃Reflection APIs鍙栧緱浠讳綍涓€涓凡鐭ュ悕绉扮殑class鐨勫唴閮ㄤ俊鎭紝鍖呮嫭鍏秏odifiers锛堣濡俻ublic銆乻tatic绛夛級銆乻uperclass锛堜緥濡侽bject锛夈€佸疄鐜颁箣interfaces锛堜緥濡侰loneable锛夛紝涔熷寘鎷琭ields鍜宮ethods鐨勬墍鏈変俊鎭紝骞跺彲浜庤繍琛屾椂鏀瑰彉fields鍐呭鎴栧敜璧穖ethods銆?/p>

Reflection鍙互鍦ㄨ繍琛屾椂鍔犺浇銆佹帰鐭ャ€佷娇鐢ㄧ紪璇戞湡闂村畬鍏ㄦ湭鐭ョ殑classes銆傚嵆Java绋嬪簭鍙互鍔犺浇涓€涓繍琛屾椂鎵嶅緱鐭ュ悕绉扮殑class锛岃幏鍙栧叾瀹屾暣鏋勯€狅紝骞剁敓鎴愬叾瀵硅薄瀹炰綋銆佹垨瀵瑰叾fields璁惧€笺€佹垨鍞よ捣鍏秏ethods銆?/p>

鍙嶅皠锛坮eflection锛夊厑璁搁潤鎬佽瑷€鍦ㄨ繍琛屾椂锛坮untime锛夋鏌ャ€佷慨鏀圭▼搴忕殑缁撴瀯涓庤涓恒€?br />鍦ㄩ潤鎬佽瑷€涓紝浣跨敤涓€涓彉閲忔椂锛屽繀椤荤煡閬撳畠鐨勭被鍨嬨€傚湪Java涓紝鍙橀噺鐨勭被鍨嬩俊鎭湪缂栬瘧鏃堕兘淇濆瓨鍒颁簡class鏂囦欢涓紝杩欐牱鍦ㄨ繍琛屾椂鎵嶈兘淇濊瘉鍑嗙‘鏃犺锛涙崲鍙ヨ瘽璇达紝绋嬪簭鍦ㄨ繍琛屾椂鐨勮涓洪兘鏄浐瀹氱殑銆傚鏋滄兂鍦ㄨ繍琛屾椂鏀瑰彉锛屽氨闇€瑕佸弽灏勮繖涓滆タ浜嗐€?/p>

瀹炵幇Java鍙嶅皠鏈哄埗鐨勭被閮戒綅浜巎ava.lang.reflect鍖呬腑锛?/p>

  1. Class绫伙細浠h〃涓€涓被
  2. Field绫伙細浠h〃绫荤殑鎴愬憳鍙橀噺锛堢被鐨勫睘鎬э級
  3. Method绫伙細浠h〃绫荤殑鏂规硶
  4. Constructor绫伙細浠h〃绫荤殑鏋勯€犳柟娉?/li>
  5. Array绫伙細鎻愪緵浜嗗姩鎬佸垱寤烘暟缁勶紝浠ュ強璁块棶鏁扮粍鐨勫厓绱犵殑闈欐€佹柟娉?/li>

涓€鍙ヨ瘽姒傛嫭灏辨槸浣跨敤鍙嶅皠鍙互璧嬩簣jvm鍔ㄦ€佺紪璇戠殑鑳藉姏锛屽惁鍒欑被鐨勫厓鏁版嵁淇℃伅鍙兘鐢ㄩ潤鎬佺紪璇戠殑鏂瑰紡瀹炵幇锛屼緥濡傜儹鍔犺浇锛孴omcat鐨刢lassloader绛夌瓑閮芥病娉曟敮鎸併€?/p>

涓夈€佷娇鐢?/h3>

鎶€鏈浘鐗? src=

1銆佽幏鍙朇lass瀵硅薄鐨勪笁绉嶆柟寮?/p>

1.1 Object ——> getClass();
1.2 浠讳綍鏁版嵁绫诲瀷锛堝寘鎷熀鏈暟鎹被鍨嬶級閮芥湁涓€涓?ldquo;闈欐€?rdquo;鐨刢lass灞炴€?br />1.3 閫氳繃Class绫荤殑闈欐€佹柟娉曪細forName锛圫tring  className锛?甯哥敤)

/**
 * 鑾峰彇Class瀵硅薄鐨勪笁绉嶆柟寮? * 1 Object ——> getClass();
 * 2 浠讳綍鏁版嵁绫诲瀷锛堝寘鎷熀鏈暟鎹被鍨嬶級閮芥湁涓€涓?ldquo;闈欐€?rdquo;鐨刢lass灞炴€? * 3 閫氳繃Class绫荤殑闈欐€佹柟娉曪細forName锛圫tring  className锛?甯哥敤)
 *
 */
public class Fanshe {
    public static void main(String[] args) {
        //绗竴绉嶆柟寮忚幏鍙朇lass瀵硅薄  
        Student stu1 = new Student();//杩欎竴new 浜х敓涓€涓猄tudent瀵硅薄锛屼竴涓狢lass瀵硅薄銆?/span>
        Class stuClass = stu1.getClass();//鑾峰彇Class瀵硅薄
        System.out.println(stuClass.getName());
        
        //绗簩绉嶆柟寮忚幏鍙朇lass瀵硅薄
        Class stuClass2 = Student.class;
        System.out.println(stuClass == stuClass2);
//鍒ゆ柇绗竴绉嶆柟寮忚幏鍙栫殑Class瀵硅薄鍜岀浜岀鏂瑰紡鑾峰彇鐨勬槸鍚︽槸鍚屼竴涓?        
        //绗笁绉嶆柟寮忚幏鍙朇lass瀵硅薄
        try {
            Class stuClass3 = Class.forName("fanshe.Student");
//娉ㄦ剰姝ゅ瓧绗︿覆蹇呴』鏄湡瀹炶矾寰勶紝灏辨槸甯﹀寘鍚嶇殑绫昏矾寰勶紝鍖呭悕.绫诲悕
            System.out.println(stuClass3 == stuClass2);
//鍒ゆ柇涓夌鏂瑰紡鏄惁鑾峰彇鐨勬槸鍚屼竴涓狢lass瀵硅薄
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
 
        System.out.println("*****************鑾峰彇鍏湁銆佹棤鍙傜殑鏋勯€犳柟娉?************");
        Constructor con = clazz.getConstructor(null);
        //1>銆佸洜涓烘槸鏃犲弬鐨勬瀯閫犳柟娉曟墍浠ョ被鍨嬫槸涓€涓猲ull,涓嶅啓涔熷彲浠ワ細杩欓噷闇€瑕佺殑鏄竴涓弬鏁扮殑绫诲瀷锛屽垏璁版槸绫诲瀷
        //2>銆佽繑鍥炵殑鏄弿杩拌繖涓棤鍙傛瀯閫犲嚱鏁扮殑绫诲璞°€?/span>
 
 
        System.out.println("*************鑾峰彇鍏湁瀛楁**骞惰皟鐢?****************");
        Field f = stuClass.getField("name");
        System.out.println(f);
        
 
        System.out.println("***************鑾峰彇绉佹湁鐨剆how4()鏂规硶******************");
        m = stuClass.getDeclaredMethod("show4", int.class);
        System.out.println(m);
        m.setAccessible(true);//瑙i櫎绉佹湁闄愬畾
        Object result = m.invoke(obj, 20);//闇€瑕佷袱涓弬鏁帮紝涓€涓槸瑕佽皟鐢ㄧ殑瀵硅薄锛堣幏鍙栨湁鍙嶅皠锛夛紝涓€涓槸瀹炲弬
        System.out.println("杩斿洖鍊硷細" + result);
 
    }
}

以上是关于Java鍙嶅皠浠嬬粛的主要内容,如果未能解决你的问题,请参考以下文章

Java鍙嶅皠鏈哄埗

Java鍙嶅皠鏈哄埗

1 . STM32CubeMX浠嬬粛

浠嬬粛axios鍜宲romise

Go --- 鍩虹浠嬬粛

鎿嶄綔绯荤粺浠嬬粛