【发布时间】:2017-10-04 12:43:09
【问题描述】:
我有一个 HashMap:
HashMap<String, anObjectClass> myHash = new HashMap<String, anObjectClass>();
我有我的anObjectClass:
public class anObjectClass {
private String name;
private ArrayList<String> myObjectList = new ArrayList<String>();
}
我有另一个类扩展了我的anObjectClass,它添加了另一个字符串:
public class secondObjectClass extends anObjectClass {
String quote;
}
这意味着我的 HashMap 中有两种对象:
我的
anObjectClass对象具有String name和ArrayList的Strings:myObjectList还有我的
secondObjectClass对象,它添加了另一个String:quote。
我的问题是,如果我有一个字符串键,请说“ABC”。我知道我可以用containsKey() 方法判断我的HashMap 中是否有一个键“ABC”。但是一旦我找到一个键“ABC”,我如何判断它是anObjectClass 对象还是secondObjectClass 对象?换句话说,我怎样才能知道什么样的对象与该键匹配?提前谢谢你。
【问题讨论】:
-
获取值并使用
instanceof进行检查。 -
提示:如果你需要使用 instanceof(正确回答你的问题)——你的设计是错误的
-
@Andreas 谢谢!拉沙内是什么意思?
-
我的意思是我写的 - 你的设计是错误的,你需要重新考虑你的应用程序架构
-
@Lashane 这对我有什么帮助?这就像告诉某人重新开始,而不是告诉他们为什么大声笑
标签: java object inheritance casting hashmap