2017-09-25 19 views
-2

当我想将项目添加到预定义的散列表时,它通常很简单。但是,无论何时我想要定义类似addNewCustomer()的方法并尝试在该方法内使用customerHashtable.put(...);函数,它都不起作用。请帮助我定义一种可以与现有散列表一起工作的方法,并让我添加新对象(本例中为客户)。如何定义一个方法在java中输入一个新的项目到现有的散列表?

这里是下面的代码:

public static void main(String[] args) { 

      Hashtable<Integer, Customer> customerHashtable = new Hashtable<Integer, Customer>(); 
      customerHashtable.put (1, new Customer("david", "+13035003433", new Address("AR", "77555"))); 

      Customer customer = new Customer("mark", "13035003433", new Address("AR", "77200")); 

      public void addNewCustomers(int key, Customer customer) { 
      customerHashtable.put(key, customer); 
      System.out.println(customerHashtable.get(key).toString()); 
      } 
    } 

} 
+0

你将不得不在'customerHashtable'传递给函数,或使其成为类的字段。 –

+1

你的意思是什么不起作用?你可以再详细一点吗? –

+0

@ElliottFrisch我是编程新手。你能解释一下吗?我也复制了我想要完成的代码。 –

回答

0

你必须把你的addNewCutomers()方法你main方法之外,为您HashTable创建一个类字段。假设你是没事了静态情况下,它可能是这样的:

public class HashtableDemo { 

    static Hashtable<Integer, Customer> customerHashtable; 

    public static void main(String[] args) { 

     customerHashtable = new Hashtable<Integer, Customer>(); 
     customerHashtable.put (1, new Customer("david", "+13035003433", new Address("AR", "77555"))); 

     Customer customer = new Customer("mark", "13035003433", new Address("AR", "77200")); 
     addNewCustomers(2, customer); 
    } 

    public static void addNewCustomers(int key, Customer customer) { 
     customerHashtable.put(key, customer); 
     System.out.println(customerHashtable.get(key).toString()); 
    } 
} 
+0

谢谢你修复它。有效。我有一个问题,但。由于我们使用了静态方法,是否意味着我们也可以从其他类调用该方法? @TobiasGeiselmann –

+0

正确。既然它是一种“公共”方法,你也可以从任何其他课程中调用它。 –

+0

再次感谢您。 –

相关问题