我有两个 Cat 对象
Cat A = new Cat();
Cat B = new Cat();
然后我询问用户他想要修改哪只猫
String choice = input.nextLine;
我想在 choice
上运行我的所有 Cat 实例方法并更改它引用的对象。例如:
choice.drinkMilk(15, 2);
如果choice
是“A”
,它将在猫A上执行drinkMilk(15, 2)
,如果它是“B”
它会在 B 上执行。
有什么办法可以做到这一点吗?
编辑:有没有办法在没有 HashMap 的情况下做到这一点?这是我的 Java 入门类(class),我们还没有学过。
最佳答案
当您创建猫对象时,将它们放入 HashMap 中:
Cat A = new Cat();
Cat B = new Cat();
Map<String, Cat> herd = new HashMap<String, Cat>();
herd.put("A", A);
herd.put("B", B);
然后,当用户从 A 或 B 中进行选择时,您可以检索适当的猫进行操作:
String choice = input.nextLine;
Cat selectedCat = herd.get(choice);
if(selectedCat != null) {
selectedCat.drinkMilk(15,2);
} else {
// user made a bad selection, so let them know
}
如果您无法使用 Map,那么您可以使用 if/else 解决方案:
String choice = input.nextLine;
if("A".equals(choice)) {
A.drinkMilk(15,2);
} else if("B".equals(choice)) {
B.drinkMilk(15,2);
} else {
// user made a bad selection, so let them know
}
关于java - 如何对与对象同名的字符串使用点运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468154/