呐。 我现在,有一个 A 类要测试,里面有个属性是
private Map<String, Integer> aMap = new ConcurrentHashMap<String, Integer>();
现在我要用 PowerMock 测试他,需要修改一下,在测试初始的时候给 aMap 加一个值。
测试类这么写的 :
A a = A.getInstance();
Map<String, Integer> amap = new ConcurrentHashMap<String, Integer>();
countNumMap.put("Key", 120);
MemberModifier.field(A.class, "aMap").set(aMap, a);
结果报了异常:
java.lang.IllegalArgumentException: Can not set java.util.Map field A.aMap to java.util.concurrent.ConcurrentHashMap
at java.lang.reflect.Field.set(Field.java:764)
应该是反射机制要求我弄个 Map 类型的对象,而不是 ConcurrentHashMap,怎么破?求大佬指导~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.