Java 在类A中,我想遍历类B中HashMap的键集
我想检查另一个类的HashMap键集中的每个键。 这就是我现在所拥有的: Admin.java Person.java 我想我做不到这一点,因为我无法在不存储在同一个类中的HashMap上使用HashMap命令 还有别的方法可以用吗?我在Admin.java中将其称为错误吗Java 在类A中,我想遍历类B中HashMap的键集,java,methods,hashmap,keyset,Java,Methods,Hashmap,Keyset,我想检查另一个类的HashMap键集中的每个键。 这就是我现在所拥有的: Admin.java Person.java 我想我做不到这一点,因为我无法在不存储在同一个类中的HashMap上使用HashMap命令 还有别的方法可以用吗?我在Admin.java中将其称为错误吗 谢谢 因为它是静态的和公共的,所以您可以从项目的任何地方使用它。只要写 Admin.person 前 public class Person { ... .... public void print()
谢谢 因为它是静态的和公共的,所以您可以从项目的任何地方使用它。只要写
Admin.person
前
public class Person {
...
....
public void print() {
for (String key: Admin.person.get("James").getHashMap().keySet()) {
System.out.println(key);
}
}
}
getHashMap方法返回Person类中的原始HashMap
原始映射未参数化,因此其键的类型隐式为Object
您需要将其更改为:
public Map<String, Book> getHashMap(){
return book;
}
。。。以便能够将键引用为字符串
编辑
您还需要将book变量更改为instance而不是static,或者将getHashMap方法设置为static
后者可能被建议不要使用,因为它将为所有Person实例返回相同的对象 您不认为按照编程实践使用getter方法访问此字段会更好吗?@VivekSingh对静态的封装?不。我更喜欢管理员这个人工作!谢谢我刚刚不得不将Map改为HashMap,这两者之间有什么区别吗,或者Map只是HashMap的一个较短名称吗?@Jalokoh-Map是HashMap实现的接口。将部分代码转换为接口原则。顺便说一句,如果您导入地图,您应该能够返回它。啊,好的,是的,那会!再次感谢!
public class Person {
...
....
public void print() {
for (String key: Admin.person.get("James").getHashMap().keySet()) {
System.out.println(key);
}
}
}
public Map<String, Book> getHashMap(){
return book;
}