首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从hashmap检索实例化对象

从hashmap检索实例化对象
EN

Stack Overflow用户
提问于 2015-01-14 09:35:58
回答 1查看 43关注 0票数 2

我真的不想问,但是我已经到了死胡同。我正在尝试将存储在hashmap中的对象数组构建为单个数组。我正在构建一个“我的世界”插件,我需要能够做到这一点,以便将所有玩家重置为他们的自然状态。但是,无论出于什么原因,我似乎都不能将Spectator[]数组解析成单独的部分。

目标只是让超过一个人观看。这是我的密码:

代码语言:javascript
复制
public class EagleEye extends JavaPlugin implements Listener{

public HashMap<Spectatee, Spectator[]> spec = new HashMap(Spectatee, Spectator[]);
public HashMap<Spectatee, Spectator[]> orinven = new HashMap<Spectatee, Spectator[]>;
public HashMap<Spectatee, Spectator[]> eeinven = new HashMap<Spectatee, Spectator[]>;

@Override
public void onEnable()
{
    //TODO:Who knows.
}
@Override
public void onDisable()
{
    //TODO:Spec off any players being spectated and spectating.

    Spectator[] frickinhell = spec.get(key)); 
    //Creates a master list of all spectators by uuid
    for(Spectator spec : spec.get(Spectator.class))
    {
        master.add(spec);
    }
    for(Object spec : master.toArray())
    {
        //Verify the player is online
        if(Bukkit.getPlayer(master)
            {
            //Verify the player is still spectating
            if(tators.get(uuid) == true)
            {
                //Stop spectating
                tators.put(uuid, false);
            }

        }

    }

}

据我所知,大部分代码都被破坏了。但是,我主要关心的是将Spectator[]存储在存储在hashmap中的Spectators[]的所有实例中,并将它们的值重置为默认值。一旦我可以访问每个对象本身的每个单独的实例,我就可以使用setter重置它们各自的值。

干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-14 09:38:01

spec.get(Spectator.class)中,Spectator.class不匹配您的密钥类型,即Spectatee。因此,它返回null。

如果希望获得非空值,则应该将Spectatee的实例传递给spec.get()

如果您想收集所有的观众,而不管他们的键,您可以遍历Map的值:

代码语言:javascript
复制
for (Spectator[] value : spec.values())
    for(Spectator spec : value)
    {
        master.add(spec);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27939727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档