嗨,我试图访问一个Hashmap中的MultiValueMap

这是我的HashMap里面的projectDetails HashMap

private HashMap<String, ClassDetails> classDetailsMap = new HashMap<String, ClassDetails>();


classDetailsMap里面我有MultiValueMap叫做methodDetailsMap

private MultiMap<String, MethodDetails> methodDetailsMap = new MultiValueMap<String, MethodDetails>();


当我试图通过访问methodDetailsMap

        Set<String> methodNamesSet = projectDetails.getClassDetailsMap().get(cls).getMethodDetailsMap().keySet();
    String[] methodNames = methodNamesSet.toArray(new String[0]);

    for (int i = 0; i < methodNames.length; i++) {
        String methodName = methodNames[i];
        System.out.println(cls + " "+methodName);
        //codes used to access key values
        Collection coll = (Collection) methodNamesSet.get(methodName);
        System.out.println(cls + " "+methodNamesSet.get(methodName));
    }


我得到一个错误get说无法解析方法get(java.lang.String)

有什么方法可以访问MultiValueMap

最佳答案

它是您的代码的编译错误。 Set中没有get方法。


  methodNamesSet.get(methodName)


要获取方法详细信息,请首先遍历该集合,然后如下所示从methodDetailsMap获取方法详细信息。

MultiValueMap<String, MethodDetails>  methodDetailsMap = projectDetails.getClassDetailsMap().get(0).getMethodDetailsMap();
       Set<String> methodNamesSet = methodDetailsMap.keySet();

        for(String str: methodNamesSet) {
                System.out.println(methodDetailsMap.get(str));
        }

关于java - MultiValueMap获取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56211499/

10-12 05:52