java實現非法訪問異常樣本_java

來源:互聯網
上載者:User

思路分析:

首先使用Class獲得一個代表String類的類對象,然後使用Class類的getDeclaredFields()方法獲得所有成員變數,並賦值給一個Field型數組,即得到String類的所有域。
使用foreach()迴圈遍曆所有域,使用Field類的getName()方法獲得該成員變數的名稱,如果域的名字是hash,嘗試使用Field類的getInt(Object obj)方法獲得指定對象中類型為int的該成員變數的值。
依次捕獲IllegalArgumentException異常和IllegalAccessException異常。
代碼如下:

複製代碼 代碼如下:

import java.lang.reflect.Field;

public class ExceptionTest {
    public static void main(String[] args) {
        Class<?> clazz = String.class;                        //獲得代表String類的類對象
        Field[] fields = clazz.getDeclaredFields();
        for (Field field : fields) {                            //遍曆所有域        
            System.out.println(field);
            if (field.getName().equals("hash")) {               //如果域的名字是hash
                try {
                    System.out.println(field.getInt("hash"));   // 輸出hash的值
                } catch (IllegalArgumentException e) {      //捕獲IllegalArgumentException異常
                    System.out.println(e);
                } catch (IllegalAccessException e) {            //捕獲IllegalAccessException異常
                    System.out.println(e);
                }
            }
        }
    }
}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.