从运行时期间从另一个类获取哈希表的值

时间:2014-10-23 10:21:57

标签: java hashtable rmi

我有两节课。

class Question
{
  Hashtable<Integer, String> hs;

  void populateHashTable();
  //to populate hashtable during runtime. 
}

class QuestionGetter
{
  String s; 
  int x;
  //I want string s to hold the value of the key x.
}

仅在运行时期间填充Question类中的哈希表。 我正在使用RMI概念来运行两个相互通信并检索值的类。因此,在问题类中,我将添加多个问题及其问题编号,我想在QuestionSetter类中检索我输入问题密钥。

我该如何实现?

2 个答案:

答案 0 :(得分:1)

您必须在Question班级中引用QuestionGetter个对象:

class QuestionGetter{

   Question question;

   //constructors

   public void add(String s, int x){
      question.hs.put(x, s);
   }
}

答案 1 :(得分:0)

首先,我从您的说明中假设您的Question类确实是QuestionCollection,因为它在Hashtable中包含多个问题。

现在,根据您的需要,有两种可能性:

如果您只想使用一个QuestionCollection(因为它在运行时期间填充),您可能需要声明其字段和方法static。现在,您可以QuestionCollection.getHs().get(x) int x QuestionGetter QuestionCollection(您必须插入由QuestionCollection类提供的静态getter-Method,因为您不希望直接访问hs)。这是一个非常简单但很弱的解决方案。

如果您可能想要使用多个QuestionGetter,则需要传递QuestionCollection QuestionCollection个实例,以便它知道从哪个{{1}}获取问题。在这种情况下,rickyalbert的答案适用。