2
 public class CityList{
   public static void main(String[] args){
   ConcurrentHashMap<Integer,String> hm=new ConcurrentHashMap<Integer,String>();
   hm.put(10,"AAAA");
        hm.put(11."BBBB");
        }
        }
        // another class
        public class Getcity extends CityList{
        public static void main(String[] args){
        public void showcity(int i)
        {
        system.out.println(hm.get(i);
        }

我创建了一个类并ConcurrentHashMap在该类中实现。现在我想使用其他类中的另一种方法访问该 Map 的特定元素。请帮助我。如果我将i值传递为10,它应该显示AAAA。请告诉我如何做到这一点。

4

2 回答 2

4

您应该使用ConcurrentHashMap成员创建其他类,并将ConcurrentHashMap您在类中创建的CityList类注入这些类 - 作为构造函数参数或调用 setter 方法。

另一种选择是在您的CityList类中有一个 getter 方法,并让其他类访问该 getter。

于 2013-09-17T05:42:12.630 回答
2

你离你认为的地方还有很长的路要走。

您在 main() 方法中声明和使用 Map。“其他类”无法访问局部变量,尽管它们可以传递给其他类的方法/构造函数(并且最终局部变量可以被匿名类访问)。

这一切对你意味着什么?

  • 使地图成为 CityList 的私有字段
  • 为地图提供吸气剂
  • 让另一个类中的代码创建 CityList 的实例并通过其 getter 访问地图以填充它
  • 还有其他代码从某个地方的主要测试它
于 2013-09-17T15:58:45.967 回答