MultiValueMap получить значения - PullRequest
0 голосов
/ 19 мая 2019

Привет, я пытаюсь получить доступ к MultiValueMap, который находится в Hashmap

это мой 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

Ответы [ 2 ]

3 голосов
/ 19 мая 2019

Это ошибка компиляции с вашим кодом.В 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));
        }
1 голос
/ 19 мая 2019

Я прочитал ваш код, и, как я понимаю, сначала вам нужно получить все имена методов класса cls, а затем вы хотите получить их один за другим.Так что в цикле for вам нужно get из getMethodDetailsMap(). Это вам поможет:

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 = projectDetails.getClassDetailsMap().get(cls).getMethodDetailsMap().get(methodName);
            System.out.println(cls + " "+methodNamesSet.get(methodName));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...