HashMap方法/参数

时间:2013-07-18 14:17:18

标签: java parameter-passing

使用HashMap查看以下类定义。

为什么没有必要像我在第二种方法中那样将方法的形式参数传递给局部参数?

import java.util.HashMap;

public class MapTester
{
    private HashMap<String, String> phoneBook = new HashMap<String, String> ();

    public MapTester()
    {
        phoneBook.put("Homer Jay Simpson", "(531) 9392 4587");
        phoneBook.put("Charles Montgomery Burns", "(531) 5432 1945");
        phoneBook.put("Apu Nahasapeemapetilon", "(531) 4234 4418");        
    }    

    public void enterNumber(String name, String number)
    {       
        phoneBook.put(name, number);
    }

    public String lookupNumber(String _name) 
    {          
      name = _name;  
      return phoneBook.get(name);
    }   
}

2 个答案:

答案 0 :(得分:1)

没有必要将参数复制到局部变量,因为那样你只需要一个变量(name_name)的两个副本。

此外,您可能需要将行更改为

String name = _name;

让它编译。<​​/ p>

答案 1 :(得分:0)

您可以直接使用形式参数而不将其复制到本地参数中,因为它会在调用函数时获得原始值。

 public String lookupNumber(String _name) 
 {          
      return phoneBook.get(_name);
 }  

只有在getter和setter的情况下才需要使用setter设置局部变量并使用getter获取更新值。