HashMap类型找不到符号



我有一个类的一些HashMap类型:

private class XmlHandler extends DefaultHandler{
    private HashMap<String, String> Attribs;
    private HashMap<String, List<Attribs> >FragmentNode;
    private HashMap<String, List<FragmentNode> > ActivityNode;

编译时,我收到以下错误:

cannot find symbol FragmentNode and Attribs.

如果我修改声明插入原始类型,例如将HashMap<String, List<Attribs>更改为HashMap<String, HashMap<String, String>>,编译器会停止抱怨。

我需要这样做吗?Java不理解像这样的类型声明?

FragmentNodeAttribs不是a类型,是a变量,不能给HashMap指定变量作为类型

你可以这样做:

private HashMap<String, List<HashMap<String, String>>> FragmentNode;

或者您可以创建一个具有attributes HashMap的类,就像:

public class Attribs {
    private HashMap<String, String> Attribs;
}

:

 private HashMap<String, List<Attribs>> FragmentNode;

你好像把类型和属性混在一起了。

如果你想要这样一个特定的层次结构,你应该定义新的类:

class Attribs extends HashMap<String, String> {}
class FragmentNode extends HashMap<String, List<Attribs>> {}
class ActivityNode extends HashMap<String, List<FragmentNode>> {}

然后你可以创建这样的成员:

private class XmlHandler extends DefaultHandler {
    private Attribs attribs;
    private FragmentNode fragmentNode;
    private ActivityNode activityNode;
}

最新更新