漂流的老妖怪

导航

 

 

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

运行结果:

 

posted on 2019-09-03 16:50  漂流的老妖怪  阅读(2823)  评论(0编辑  收藏  举报