使用特定键获取对象值

时间:2015-03-10 14:27:38

标签: java

我有一个ObservableMap,我希望从中获取所有以“CPU”键开头的值:

ObservableMap<Object, Object> properties

我试过这段代码:

ObservableMap<Object, Object> properties = children.getProperties();

                        for (int i = 0; i < properties.size(); i++)
                        {

                            if (properties.equals("CPU"))
                            {

                                children.setVisible(true);
                            }
                            else
                            {

                                children.setVisible(false);
                            }

                        }

但代码运行不正常。你能帮我解决一下代码吗?

2 个答案:

答案 0 :(得分:3)

如果您知道Map中的键是字符串,那么要么将Map声明为ObservableMap<String, Object>,要么在调用equals之前将每个键转换为String。

ObservableMap<Object, Object> properties = children.getProperties();
    for (Entry<Object, Object> entry : properties.entrySet()) {
        String key = (String) entry.getKey();
        if (key.equals("CPU")) {
            children.setVisible(true);
        } else {
            children.setVisible(false);
        }
    }

答案 1 :(得分:0)

您正在比较ObservableMap<Object, Object>是否等于字符串"CPU"

接下来,如果继续比较地图中的关键对象(顺便说一下,类型为Object),equals方法将检查您要比较的对象是否是内存中的同一对象。

我可以猜测密钥可以转换为String,因此在将它们与"CPU"进行比较之前,将它们转换为字符串,以便您使用覆盖equals方法