2012-01-04 293 views
4

我想创建5-6个类,我将值存储在hashmap中的第一类&我想从第4个,第5个&第6个类中调用它。如何获得此任何代码片段或示例来实现此操作将会有所帮助,由于如何从java中的其他类调用hashmap及其值?

+1

什么是“5-6”?这是功课吗? – 2012-01-04 06:23:24

+1

我认为你的问题不清楚。更多解释是有帮助的。 – 2012-01-04 06:24:16

+0

你能否澄清你的问题好一点?你自己尝试过什么吗? – 2012-01-04 06:24:57

回答

10
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(); 
    } 

} 
+1

我试过这种方式,它没有工作。我想念这里somethin.I获取所有的主类哈希值,但是当Itry在另一个类中调用时它是空的.. – Karthik 2012-01-04 09:06:40

0

你应该使用getter和setter方法的HashMap中。

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; 
}... 
0

两种合理的方法。

  1. 有一个公共获取地图。 Class5会调用class1.getMap()。doSomething()。没有太多的工作(好),外面的班级可以做任何他们想要的地图,例如清除(),这可能会或可能不会很好。

  2. 为地图编写单独的方法,例如putIntoMap(),removeFromMap()等。更多的工作,但你可以限制外人可以做的事情。如果你不希望它们能够清除(),不要写一个ckearMap()方法。

purists有一个“德米特法”,说总是做选项2,但恕我直言,往往是矫枉过正。

相关问题