gpt4 book ai didi

java - 在 Java 中访问 Map 中的单个值

转载 作者:行者123 更新时间:2023-12-02 05:34:06 29 4
gpt4 key购买 nike

首先,如果之前有人问过这个问题,我们深表歉意。我已经搜索过,但找不到类似的内容,所以祈祷吧。

好吧,我想做的是调用 TreeMap 中单个对象的方法。我知道关键值并且正在尝试使用 .get() 但当我这样做时,虽然它返回对象引用,但我无法用它做任何事情。

长话短说,有没有一种方法可以从 TreeMap 中的对象调用方法,而无需迭代过程中的整个过程?我觉得我误解了一些非常简单的事情,但我越看它,我就越困惑。我了解如何使用 keySet 等迭代和访问映射中的所有值,但当涉及到这个特定操作时,我的头脑一片空白。

如果它有所不同,键是整数,值是我自己创建的类。我正在尝试访问我在类中为特定键创建的 getName() 方法,但似乎无法弄清楚。

谢谢

编辑:我将尝试发布下面的代码,发布任何可能相关的内容(抱歉,如果其中任何一个不相关)

公开课之战{

TreeMap<Integer, Enemy> enemies = new TreeMap<Integer, Enemy>();
TreeMap<Integer, Character> battleCharacters;
int enemiesAlive;
int totalXp;

public Battle(TreeMap characters, int floorNumber)
{
createEnemies(floorNumber);
battleCharacters = new TreeMap<Integer, Character>(characters);

enemiesAlive = 6;
totalXp = 0;

for (Map.Entry<Integer, Enemy> entry : enemies.entrySet())
{
totalXp = totalXp + entry.getValue().getExperienceValue();
}
}

[...]

public void battleLoop()
{
System.out.println("Battle!");
System.out.println("Your Party:");
System.out.println(battleCharacters.get(1).statusReport()); //this doesn't work
{
//will be changed
enemiesAlive--;
}
}

public void battleReport()
{
for (int key : enemies.keySet())
{
enemies.get(key).statusReport(); //this works
}
}

最佳答案

我的猜测:你有一个TreeMap作为原始类型而不是 TreeMap<Integer, YourObjectType> 。所以你的get方法的返回类型是 Object并且您无法调用该类型的方法。

你得到的是你的对象,你可以向下转换到你的类中,但你应该更好地参数化你的 TreeMap适本地。

关于java - 在 Java 中访问 Map 中的单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25192299/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com