有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

现在我在这门课上得到了一些价值

hMap3.put(ID,z);

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

table.addCell(hMap3); 

共 (4) 个答案

  1. # 1 楼答案

    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方法不是“非静态”:

      static public .. addCell() {}

  2. # 2 楼答案

    桌子。addCell可能正在引发错误,因为addCell可能不将HashMap对象作为参数。检查addCell(…)的作用方法接受作为参数并传递该参数

  3. # 3 楼答案

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

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

    您需要将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"));
    }
       }
    
  4. # 4 楼答案

    我想您使用的不是hMap3而是hMap1

    您可以将变量作为字段添加到主类中,如下所示:

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

    然后,您应该能够使用以下命令在另一个类中获取此信息:

    table.addCell(mainclass.hMap3);
    

    这对你有意义吗