Как вызвать hashmap и его значения из другого класса в Java? - PullRequest
4 голосов
/ 04 января 2012

Я хотел бы создать 5-6 классов, я храню значения в hashmap в 1-м классе, и я хотел бы вызвать его из 4-го, 5-го и 6-го классов. Как получить это, любые фрагменты или пример для реализации этого будут полезно, спасибо

Ответы [ 3 ]

10 голосов
/ 04 января 2012
public class Example {

    private HashMap<String, String> hashmap = new HashMap<String, String>();

    public HashMap<String, String> getHashmap() {
        return hashmap;
    }

    public void setHashmap(HashMap<String, String> hashmap) {
        this.hashmap = hashmap;
    }
}

public class AnotherClass {

    public static void main(String args[]) {
        Example ex = new Example();
        HashMap<String, String> hm = ex.getHashmap();
    } 

}
0 голосов
/ 04 января 2012

Два разумных подхода.

  1. Есть публичный получатель карты. Class5 будет вызывать class1.getMap (). DoSomething (). Не так много работы (хорошо), и внешние классы могут делать все, что они хотят на карту, например, clear (), что может быть или не быть хорошим.

  2. Напишите отдельные методы для карты, например, putIntoMap (), removeFromMap () и т. д. Больше работы, но вы можете ограничить то, что могут делать посторонние. Если вы не хотите, чтобы они могли очистить (), не пишите метод ckearMap ().

У пуристов есть «Закон Деметры», который гласит, что всегда делайте вариант 2, но ИМХО, это часто перебор

0 голосов
/ 04 января 2012

вы должны использовать сеттеры и геттеры для хэш-карты.

private HashMap h = null;
//instantiate hashmap in the constructor
public ...
//add value to hashmap
public void add(Object value)
{
    h.put(value);//eventually cast value or declare it as you did it in the hashmap 
}

//get hashmap
public HashMap getMap()
{ 
    return h;
}

//set hashmap
public void setMap(HashMap hm)
{ 
    h=hm;
}...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...