我想从另一个类中查看HashMap的keySet中的每个键。 现在这就是我所拥有的:
Admin.java
import java.util.HashMap
public class Admin {
public static HashMap<String, Person> person = new HashMap<String, Person>();
public static void main (String [] args) {
for (String key: person.get("James").getHashMap().keySet()) {
System.out.println(key);
}
}
Person.java
import java.util.HashMap
public class Person {
public static HashMap<String, Book> book = new HashMap<String, Book>();
private static String title = "";
public Book (String titleIn) {
title = titleIn;
}
public HashMap getHashMap(){
return book;
}
}
我想我不能这样做,因为我无法在HashMap上使用HashMap命令,而HashMap没有存储在同一个类中。
我可以使用其他方法吗?我是从Admin.java那里搞错了吗?
谢谢!
答案 0 :(得分:0)
由于它是静态的和公共的,因此您可以从项目的任何位置使用它。只需写下
Admin.person
前者
public class Person {
...
....
public void print() {
for (String key: Admin.person.get("James").getHashMap().keySet()) {
System.out.println(key);
}
}
}
答案 1 :(得分:0)
您的getDataFactory.callWebApi('someDataToPass'));
方法会在getHashMap
课程中返回原始HashMap
。
原始地图未进行参数化,因此其键的类型为Person
隐式。
您需要将其更改为:
Object
...以便能够将密钥引用为public Map<String, Book> getHashMap(){
return book;
}
。
修改强>
您还需要将String
变量更改为实例(而不是book
),或使static
方法保持静态。
后者可能被建议不要使用,因为它会为所有getHashMap
个实例返回相同的对象。