Другой метод, не позволяющий мне получить доступ к значениям HashMap - PullRequest
0 голосов
/ 18 февраля 2012

Я реализовал хеш-карту в методе (назовите его методом a), и в этом методе a я вызвал другой метод (назовите его методом b), из которого я передаю встроенную в метод хеш-карты метод a в метод b.Проблема в том, что когда я пытаюсь получить значения hmap в методе b, это не позволяет мне написать заявление для этого.

В анализаторе классов у меня есть 2 метода: метод a и метод b.Я вызвал метод b из следующего утверждения:

analyzer v=new analyzer();
v.b(hMap1, 1);

В методе b я пытаюсь получить значения hmap1, но он не позволяет мне написать:

public HashMap b(HashMap x,int i)
{
  System.out.println( x.get("6").dstip);
} 

Он не позволяет мне писать .dstip, где, когда я пишу это оператор печати в методе a, он выдает результаты на консоли.Я сделал публичную хэш-карту, и я не знаю, почему она не позволяет мне написать желаемое утверждение.

1 Ответ

6 голосов
/ 18 февраля 2012

Ваш HashMap не имеет типа, поэтому вызов метода get для него возвращает экземпляры типа Object. На Object нет открытого свойства с именем dstip, поэтому ваша компиляция не удалась. Конечно, ваш фрагмент кода будет работать, если Java будет динамически типизирован, но это совершенно не по теме.

Вы должны объявить и передать ваш HashMap с соответствующим параметризованным типом. Скажи:

Map<MyDStipBean> map = new HashMap<MyDStipBean>();
public Map<MyDStipBean> b(Map<MyDStipBean> x,int i) {
    System.out.println( x.get("6").dstip);
}

Кстати, ваш Java-код не соответствует рекомендациям для именования или доступа к свойству .

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