zoukankan      html  css  js  c++  java
  • JAVA反射机制:在泛型为Integer的ArrayList中存放一个String类型的对象、在泛型为String的ArrayList中存放一个integer类型的对象、在泛型为Map的ArrayList中存放一个integer/String/HashMap类型的对象

    1. 反射机制:在泛型为Integer的ArrayList中存放一个String类型的对象

    package test;
    
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.List;
    
    public class TestReflect1 {
        /**
         * 反射机制:在泛型为Integer的ArrayList中存放一个String类型的对象
         * @param args
         * @throws NoSuchMethodException
         * @throws SecurityException
         * @throws IllegalAccessException
         * @throws IllegalArgumentException
         * @throws InvocationTargetException
         */
        public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
            List<Integer> list = new ArrayList<Integer>();
            Method method = list.getClass().getMethod("add", Object.class);
            method.invoke(list, 1);
            method.invoke(list, 2);
            method.invoke(list, "Java反射机制测试");
            method.invoke(list, 3);
            System.out.println(list);
        }
    }

    运行结果:


    2. 反射机制:在泛型为String的ArrayList中存放一个integer类型的对象

    package test;
    
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.List;
    
    public class TestReflect2 {
        /**
         * 反射机制:在泛型为String的ArrayList中存放一个integer类型的对象
         * @param args
         * @throws NoSuchMethodException
         * @throws SecurityException
         * @throws IllegalAccessException
         * @throws IllegalArgumentException
         * @throws InvocationTargetException
         */
        public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
            List<String> list = new ArrayList<String>();
            Method method = list.getClass().getMethod("add", Object.class);
            method.invoke(list, "Java反射机制测试");
            method.invoke(list, "Java反射机制测试");
            method.invoke(list, 1);
            method.invoke(list, "Java反射机制测试");
            System.out.println(list);
        }
    }

    运行结果:


    3. 反射机制:在泛型为Map的ArrayList中存放一个integer/String/HashMap类型的对象

    package test;
    
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class TestReflect3 {
        /**
         * 反射机制:在泛型为Map的ArrayList中存放一个integer/String/HashMap类型的对象
         * @param args
         * @throws NoSuchMethodException
         * @throws SecurityException
         * @throws IllegalAccessException
         * @throws IllegalArgumentException
         * @throws InvocationTargetException
         */
        public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
            List<Map<String, Object>> list = new ArrayList<>();
            Method method = list.getClass().getMethod("add", Object.class);
            method.invoke(list, 1);
            method.invoke(list, "Java反射机制测试");
            
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("name", "zhangsan");
            map.put("sex", "男");
            
            method.invoke(list, map);
            System.out.println(list);
        }
    }

    运行结果:

  • 相关阅读:
    MQTT研究之EMQ:【JAVA代码构建X509证书【续集】】
    MQTT研究之EMQ:【JAVA代码构建X509证书】
    MQTT研究之EMQ:【SSL证书链验证】
    自己DIY出来一个JSON结构化展示器
    Mac系统还原
    Mac初用
    工作中缓存使用方式的总结
    面试突击(八)——JVM的结构及内存模型,是怎么划分的?
    面试突击(七)——JVM如何加载Java字节码信息的?
    面试突击(六)——JVM如何实现JAVA代码一次编写到处运行的?
  • 原文地址:https://www.cnblogs.com/hooly/p/11230279.html
Copyright © 2011-2022 走看看