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);
        }
    }

    运行结果:

  • 相关阅读:
    多线程调用本质
    音频编码解码器库 libZPlay
    C#多线程代码调试技巧
    SharpMap实践代码
    Work Queue based multithreading
    (转)C#写的NoSQL开源系统(系列)
    A .NET State Machine Toolkit Part I
    在线开发环境地址
    数字音乐商KKBOX三季度将进军日本市场
    苹果官方购置iPad用户将获1100元退款
  • 原文地址:https://www.cnblogs.com/hooly/p/11230279.html
Copyright © 2011-2022 走看看