<address id="zhpbl"></address>
<noframes id="zhpbl">
<address id="zhpbl"><form id="zhpbl"><th id="zhpbl"></th></form></address>

    <em id="zhpbl"></em>

      <address id="zhpbl"><th id="zhpbl"><progress id="zhpbl"></progress></th></address>
      更多精彩內容,歡迎關注:

      視頻號
      視頻號

      抖音
      抖音

      快手
      快手

      微博
      微博

      java reflect

      文檔

      java reflect

      javareflect是反射機制,在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。
      推薦度:
      導讀javareflect是反射機制,在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。

      java reflect是什么?讓我們一起來了解一下吧!

      java reflect是反射機制,指在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。

      ?

      實現反射的方法:

      一、獲得類的信息(獲得到的是類的全路徑信息)

      獲取類的信息有三種方法:

      1.使用class類的forName()方法獲取類的信息

      2.使用實例的getClass()獲取類的信息

      3.通過類名獲得類的信息

      二、使用類的信息創建類

      獲得類的信息之后,可以使用reflect(反射)包下面的Field和Method類獲得類的屬性和方法,并對屬性和方法進行操作。

      獲得類的全路徑名以后可以通過使用Class類中的getDeclaredMethod(String name, Class

      getDeclaredField(String name)方法如下:

      public?class?ClassUtils?{
      ????/**
      ?????*?獲取屬性字段
      ?????*?@param?clazz?類
      ?????*?@param?fieldName?屬性名稱
      ?????*?@throws?Exception
      ?????*/
      ????public?static?void?getDeclaredField(Class?clazz,?String?fieldName)?throws?Exception{
      ????????System.out.println(clazz.getDeclaredField(fieldName));
      ????}
      }
      public?class?ClassTest?{
      ????public?static?void?main(String[]?args)?{
      ????????try?{
      ????????????Class?clazz?=?Class.forName("reflectdemo.SuperHero");
      ????????????//測試公有屬性
      ????????????ClassUtils.getDeclaredField(clazz,?"ADDRESS");
      ????????????//測試私有屬性
      ????????????ClassUtils.getDeclaredField(clazz,?"name");
      ????????}?catch?(Exception?e)?{
      ????????????e.printStackTrace();
      ????????}
      ????}
      }

      ?getDeclaredFields()方法如下:

      public?class?ClassUtils?{
      ????/**
      ?????*?遍歷clazz對象已有的成員變量
      ?????*?@param?clazz
      ?????*/
      ????public?static?void?getDeclaredFields(Class?clazz){
      ????????Field[]?fields?=?clazz.getDeclaredFields();
      ????????for?(Field?field:?fields)?{
      ????????????//如果要設置值,需要加入下面這句,反射對象在使用時不使用Java語言訪問檢查
      ????????????//field.setAccessible(true);
      ????????????
      ????????????//直接打印Field
      ????????????System.out.println(field);
      ????????????//手動獲取變量類型和變量名稱
      ????????????System.out.println(field.getType().getName()?+?"?"?+field.getName());
      ????????????System.out.println("--------------------");
      ????????}
      ????}
      }
      public?class?ClassTest?{
      ????public?static?void?main(String[]?args)?{
      ????????try?{
      ????????????Class?clazz?=?Class.forName("reflectdemo.SuperHero");
      ????????????//遍歷成員變量
      ????????????ClassUtils.getDeclaredFields(clazz);
      ????????}?catch?(Exception?e)?{
      ????????????e.printStackTrace();
      ????????}
      ????}
      }

      以上就是小編今天的分享了,希望可以幫助到大家。

      文檔

      java reflect

      javareflect是反射機制,在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。
      推薦度:
      為你推薦
      資訊專欄
      熱門視頻
      相關推薦
      java regex java openssl java orm java outer java outofmemory java overload java resources java resolve java require java region java render java override java pandas java parse java repeat java parser java request java partial java requests java rest java reference java redirect java rectangle java openjdk java opengl java openfire java onvif java inputstreamreader java influxdb java implements java image java htmlunit java hibernate java number java nslookup java notify java node類 java hdfs java hashcode java getbytes
      Top 少妇高潮太爽了在线视频