Java: проблема с hashmap и keyset () - PullRequest
1 голос
/ 08 января 2010

Вот что я делаю (это моя «домашняя работа»): задача состоит в том, чтобы сделать карту песчанок, а затем пролистать ее, используя keySet () и get (key);

import java.util.*;

class Gerbil
    {
    int gerbilNumber;
    Gerbil(int i)
        {
        gerbilNumber = i;
        }
    void hoop()
        {
        System.out.println("The gerbil can jump and its number is: " + gerbilNumber);
        }
    }

public class GerbilMaze2
    {
    static Map<String,Object> fill(Map<String,Object> m)
        {
        m.put("Rat2", new Gerbil(2));
        m.put("Rat1", new Gerbil(1));
        m.put("Rat3", new Gerbil(3));
        return m;
        }
    public static void main(String[] args)
        {
        Map<String,Object> gerbils = fill(new HashMap<String, Object>());
        System.out.println(gerbils.keySet());
        for (String k : gerbils.keySet())
            {
            gerbils.get(k).hoop();
            }
        }
    }

Все кажется довольно хорошо вплоть до того момента, когда я вызываю метод hoop (). gerbils.get (k) является объектом (когда я его печатаю, он отображается как объект), но по какой-то причине «не может найти символ».

Заранее спасибо за любую помощь, Пол

1 Ответ

8 голосов
/ 08 января 2010

Вы хотите Map<String,Gerbil>. В Object.

нет метода hoop.

(Вас также могут заинтересовать Map.values и Map.entrySet.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...