首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDI:如何在HashMap上迭代

JDI:如何在HashMap上迭代
EN

Stack Overflow用户
提问于 2021-12-13 03:56:46
回答 2查看 65关注 0票数 0

我通过JDI获得com.sun.jdi.ObjectReferencejava.util.HashMap类型,然后得到文件值"entrySet“,为什么它总是为null?如何使用java调试api在HashMap keyValues上迭代?

代码语言:javascript
复制
public static void displayVariables(LocatableEvent event) throws IncompatibleThreadStateException, AbsentInformationException {
        StackFrame stackFrame = event.thread().frame(0);
        for (LocalVariable visibleVariable : stackFrame.visibleVariables()) {
            Value value = stackFrame.getValue(visibleVariable);
            if(value instanceof ObjectReference){
                ObjectReference objectReference = (ObjectReference) value;//is type java.util.HashMap
                Field entrySet = objectReference.referenceType().fieldByName("entrySet");// is java.util.HashMap.entrySet
                Value entrySetValue = objectReference.getValue(entrySet);// is null
                System.out.println(entrySet);

            }
        }
    }

EN

回答 2

Stack Overflow用户

发布于 2021-12-13 04:36:34

代码语言:javascript
复制
for (T key : hashMap.keySet()) {
    V value = hashMap.get(key);
    // rest of your code here
} // Can you get to where you need to go from here?

假设hashMap是HashMap。

票数 0
EN

Stack Overflow用户

发布于 2021-12-13 04:49:23

代码语言:javascript
复制
mapConfig.forEach((k, v) -> {

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70329774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档