作者:书友68610983 | 来源:互联网 | 2022-12-24 10:35
1> davidxxx..:
您提供的是名称,data.containsValue(name)
而不是值.如果您想根据班级客户端的密钥返回值,
您需要的是Map.containskey()
.
请注意,null
由于不存在键的映射,因此不需要处理映射中的存在,因为它不存在.
public String getPhone(String name){
return data.get(name);
}
边注
不是问题中的问题,而是要处理的问题.
ToString()
对于一个方法来说真的不是一个好名字:
public void ToString(){
data.toString();
}
方法名称区分大小写,是的,但使用它来定义与方法略有不同的命名(此处为T
大写)并不是一个公平的理由Object.toString()
.它使代码阅读误导.
此外,您的方法什么都不返回.所以这很无奈:pb.ToString();
你应该声明的是:
@Override
public String toString(){
return data.toString();
}
添加添加@Override
了一个编译约束,用于检查方法是否在层次结构中定义.
现在,您可以通过这种方式在标准输出中写入对象的toString()
表示PhoneBook
:
System.out.println(pb);