如何将变量传递到同一个包中的另一个类

时间:2014-05-01 15:15:45

标签: java collections

我有一个Java类,其中我有一个集合变量,我正在进行一些计算并将一些值存储到该变量中,并且在同一个包中的另一个类中我想使用该变量,以便它可以在该类中打印该值。以下是集合语法:

public static HashMap<String, Double> hMap3=new HashMap<String, Double>();

现在我在这个类中得到了一些像这样的值

hMap3.put(ID,z);

现在我想在另一个PDF生成类中获取此hMap3值我正在尝试这样并且显示错误

table.addCell(hMap3); 

4 个答案:

答案 0 :(得分:0)

我假设您没有使用hMap3而是使用hMap1。

您可以将变量添加为主类中的字段:

public static HashMap<String,String>hMap1=new HashMap<String, String>();

然后你应该能够使用:

在另一个类中获取它
table.addCell(mainclass.hMap3);

这对你有意义吗?

答案 1 :(得分:0)

您需要使用HashMap的get(key)方法来获取存储的值。

每个条目都使用put(key,value)方法将HashMap存储为键/值对。

您需要将Hashmap作为类级变量并为其生成getter方法,然后使用存储HashMap的类的对象在另一个类中调用getter方法。

你可以获得价值

        String value = hMap3.get(ID);
        table.addCell(value);

创建如下所示的类,并从main方法

向您添加地图条目Hashmap
  public class A  {
HashMap<String, String> map = new HashMap<String, String>();
public void populateMap(String ID, String z) {
    map.put(ID, z);
}
public HashMap<String, String> getMap() {
    return map;
}
public static void main(String[] args) {
    A a = new A();
    a.populateMap("1234", "New Object Stored");
}
 }

然后在同一个包中创建另一个类,如下所示

  class B {
public static void main(String[] args) {
    A a = new A();
    HashMap<String, String > map = a.getMap();
    table.add(map.get("1234"));
}
   }

答案 2 :(得分:0)

  1. 在MainClass中将hMap3声明为静态

    public static HashMap<String,String> hMap3;

  2. 在MainClass中创建一个实例:

    hMap1=new HashMap<String, String>();

  3. 使用以下方法访问另一个包类中的hMap3:

    MainClass.hMap3,或者您的情况:table.addCell(MainClass.hMap3);

  4. 确保addCell方法不是&#34;非静态&#34;:

    static public .. addCell() {}

答案 3 :(得分:0)

table.addCell可能会抛出错误,因为addCell可能不会将HashMap对象作为参数。检查addCell(...)方法作为参数采用什么并传递它。