java 反射调用问题

自由de风 发布于 2015/06/29 09:46
阅读 236
收藏 0

public class Test{
    protected static Map<Integer, String> map = new HashMap<Integer, String>();
}



求问通过反射怎么调用map的clear方法啊

加载中
1
harleyliao
harleyliao
package com.test;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

/**
 * @author liao
 *
 */
public class InvokeStaticTest {
    protected static Map<Integer, String> map = new HashMap<Integer, String>();
    
    static {
        map.put(1, "test");
    }
    
    public static void main(String[] args) throws Exception {
        Field mapField = InvokeStaticTest.class.getDeclaredField("map");
        Object mapObject = mapField.get(InvokeStaticTest.class);
        
        Method clearMethod = Map.class.getDeclaredMethod("clear");
        clearMethod.invoke(mapObject);
    
        System.out.println(map);
    }
}



自由de风
自由de风
可以了 3Q~
0
番茄酱汁
番茄酱汁
为什么要通过反射调用呐?需求很奇怪啊
番茄酱汁
番茄酱汁
@自由de风 HashMap.class.getMethod("clear").invoke(HashMap.class.newInstance());
自由de风
自由de风
我就是问问,没有其他意思
返回顶部
顶部