1. 程式人生 > >java反射系列七 --- 通過反射越過泛型檢查

java反射系列七 --- 通過反射越過泛型檢查

1.定義一個測試類

public class relfact {

    public static void main(String[] args){
        List<String> list = new ArrayList<>();
        list.add("喬峰");
        list.add("虛竹");
        list.add("段譽");
        //list.add(100);//我如果想加入一個int型的資料該怎麼辦?
        sop(list);
        /*1.獲取Class類物件*/
        Class cls = list.getClass();
        /*2.獲取ArrayList的add()*/
        try {
            Method method = cls.getMethod("add",Object.class);
            /*3.呼叫add()方法*/
            method.invoke(list,100);
            sop(list);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }

    private static void sop(Object obj){
        System.out.println(obj);
    }
}

2.測試結果


相關推薦

java反射系列 --- 通過反射越過檢查

1.定義一個測試類public class relfact { public static void main(String[] args){ List<String> list = new ArrayList<>();

javaSE (四十一)反射的概念、通過反射越過檢查

作為javaSE的最後一篇,反射更多的是一種程式設計理念或者說優化,對前面的java多型的一種優化,簡單但是需要理解一下 這篇文章寫的很好: 大白話說Java反射:入門、使用、原理 1、反射的概念: 反射是相對於正射來說的,正射是先通過構造方法建立類的物件,然後使用

java 反射越過檢查

反射之前,我們知道在集合類中一旦指定了泛型的型別,則只能在該集合中用該型別。但是我們可以利用反射機制來越過泛型檢查。比如說利用反射機制獲取ArrayList中的add()方法,再呼叫add方法時,就會

反射_通過反射越過檢查

package cn.itcast.test; import java.lang.reflect.Constructor; import java.lang.reflect.Method; impo

Java自定義Annotation,通過反射解析Annotation

建立一個自定義的Annotation import java.lang.annotation.*; import java.lang.reflect.Method; @Documented @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUN

基於java反射篩選List對於不同實體的公共方法

前提:在最近做的專案當中有個奇葩的需要,就是需要將已知的list<實體類>進行一次篩選,查詢list裡面屬性中的值是否包含某個值(模糊查詢)。將符合要求的物件新增到一個list1裡面,從而生

java反射機制 以及通過反射獲得類的變數欄位,方法,建構函式

        Class clz =Class.forName("day_29_ReflectAndJson.Person");         //前面獲取本類及其父類共有的方法就不再寫了 直接獲得本類中的所有方法 並傳引數後呼叫本方法         Method[] method=clz.getDec

java機制學習——反射,註解,代理,

java 反射機制在很多地方都有用到。 1、反射的概念: JAVA反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意方法和屬性;這種動態獲取資訊以及動態呼叫物件方法的功能稱為java語言的反射機制。 Ja

java註解試用及通過反射讀取值

第一步 建立一個註解介面 @Target({java.lang.annotation.ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Fruit {      public a

反射跳過檢查

ger add () star sys cep object bsp out @Testpublic void method() throws NoSuchMethodException, InvocationTargetException, IllegalAccessE

Java NIO系列之 AsynchronousFileChannel非同步檔案通道

Java7中新增了AsynchronousFileChannel作為nio的一部分。AsynchronousFileChannel使得資料可以進行非同步讀寫。下面將介紹一下AsynchronousFileChannel的使用。 建立AsynchronousFileChann

Java基礎語法<十二> 程序設計

清除 extend 原生態 cast color 強制 方式 限定 只為 1 意義 泛型程序設計意味著編寫的代碼可以被很多不同類型的對象所重用。 常見應用 : ArrayList 2 K T V E ? object等的含義 類型變量使用大寫形式 E &ndash

Java基礎系列之基礎數據類

四種 分數 系列 數字 好處 java基礎 bsp style 情況 在Java中,一共有8種基本類型,其中有四種整型,兩種浮點型,還有一個表示unicode編碼的字符單元的字符類型char和1種用於表示真假值的boolean類型。 在這裏介紹一下有種在項目比較常用

Effective Java 第三版——29. 優先考慮

調用 system correct temp per except 語言 程序員 但是 Tips 《Effective Java, Third Edition》一書英文版已經出版,這本書的第二版想必很多人都讀過,號稱Java四大名著之一,不過第二版2009年出版,到現在已

Java語法糖(3):

rgs fir double new t exc The 編譯器 sta arraylist 泛型初探 在泛型(Generic type或Generics)出現之前,是這麽寫代碼的: public static void main(String[] args){List l

java學習筆記(九)-- java新特性 ( 可變引數 & & 靜態匯入 & 型別擦除 )

JDK1.5新特性 方法的可變引數             設計一個方法,可以接收任意個數的整數,並返回他們的相加結果       

java程式設計思想——第十五章()》

泛型 15.2 簡單泛型## 泛型的主要目的之一就是用來指定容器要持有什麼型別的物件,而且由編譯器來來保證正確性。 // 型別引數T public class Holder3<T> { private T t; public Holder3(T a) {

Effective Java (3rd Editin) 讀書筆記:4

4 泛型 泛型中的術語: 術語 例子 引數化型別(Parameterized type) List<String> 實際型別引數(Actual t

java基礎-中級(二)【

目錄 2、泛型 2.1 泛型方法 2.2 泛型類 2.3 泛型介面 2.4 泛型的約束與侷限 2.5 泛型型別繼承規則  2.6 Class<T> 2、泛型 Java 泛型(generics)是 JDK 5 中引入的一個新特性, 泛型

java進階(一):

1、泛型簡介 所謂泛型,即通過引數化型別來實現在同一份程式碼上操作多種資料型別,泛型程式設計是一種程式設計正規化,他利用“引數化型別”將型別抽象化,從而實現更為靈活的複用。 先簡單給個例子: //可以想象這裡的T為Integer型別,以便於理解,其實它可以是任何型別 p