当前位置: 首页 > 知识库问答 >
问题:

创建具有字符串名称的变量

宫子晋
2023-03-14

我正在为学校制作一种API,用于定制XML编写器。我有:

public Document CreateDocument(int loops, int attr, String data[], String dataattr[][][]) {
    Document BetterDoc = DocumentHelper.createDocument();
    Element root = BetterDoc.addElement("root");
    for (int i = 0; i < loops; i++) {
        Element(Object) data[i] = root.addElement(data[i])
        for (int i2 = 0; i < attr; i++) {
            .addAtribute(dataattr[i][i2][0], dataattr[i][i2][1])
        };
    }

    return BetterDoc;
}

我需要帮助的是:

Element(Object) data[i] = root.addElement(data[i])

我想创建一个与数据[i]同名的元素。

我使用的是dom4jxml。顺便说一句,放在这个罐子里。

我听说过一种叫做hashmap的方法,如果这是正确的方法,请有人解释一下如何使用它。

共有2个答案

裘安阳
2023-03-14

与Groovy、PHP或Javascript不同,您不能创建动态变量,但可以创建数组或重用现有变量:

使用现有变量:

public Document CreateDocument(int loops, int attr, String data[], String dataattr[][][]) {
    Document BetterDoc = DocumentHelper.createDocument();
    Element root = BetterDoc.addElement("root");
    for (int i = 0; i < loops; i++) {
        Element _data = root.addElement(data[i]);
        for (int i2 = 0; i < attr; i++) {
            _data.addAtribute(dataattr[i][i2][0], dataattr[i][i2][1])
        };
    }    
    return BetterDoc;
}

用数组:

public Document CreateDocument(int loops, int attr, String data[], String dataattr[][][]) {
    Document BetterDoc = DocumentHelper.createDocument();
    Element root = BetterDoc.addElement("root");
    Element[] _data = new Element[loops];
    for (int i = 0; i < loops; i++) {
        _data[i] = root.addElement(data[i]);
        for (int i2 = 0; i < attr; i++) {
            _data[i].addAtribute(dataattr[i][i2][0], dataattr[i][i2][1])
        };
    }    
    return BetterDoc;
}

如果愿意,可以用ArrayList替换数组。

哈烨熠
2023-03-14

不,你不能这么做。你不能用它的名字动态地创建/访问一个变量。使用反射,你可以访问,但你不能创建。

我想,一张地图在这里可以像

map.put(data[i],root.addElement(data[i]);

以上只是一个示例代码,可以提供一些启示。

 类似资料:
  • 问题内容: 在hibernate状态下使用sqlserver方言。 我希望hibernate在创建表时使用带引号的标识符。 除了重命名字段外,还有其他任何处理方法的想法吗? 问题答案: 遇到相同的问题,但表名为。如果你设定 然后所有数据库标识符将被引用。 在这里找到我的答案 表名称中的特殊字符hibernate给出错误 并在这里找到所有可用的设置 https://docs.jboss.org/hi

  • 问题内容: 我需要创建一个可以将int,long,double等类型转换为字符串的格式的字符串。使用Obj-C,我可以通过以下方式进行操作。 怎么做迅速? 问题答案: 我认为这可以帮助您: 结果示例:

  • 问题内容: 有没有办法在Javascript中将变量名作为字符串获取?喜欢 我想这样做: 更新 我正在尝试使用JavaScript连接浏览器和另一个程序。我想将实例名称从浏览器发送到另一个程序以用作回调方法: 从另一个程序: 问题答案: 通常,在需要将名称映射到某个值并能够同时检索两者的情况下,可以使用哈希表。

  • 问题内容: 计划使用字符串值来引用我要更新的变量。组合来自几个不同用户选择来源的字符串。有很多使用if / case语句的可能性。提前致谢 问题答案: 如何使用字典? 这将使您实现所需的功能-存储不同键的值。 例如,代替使用 你可以用 要将值存储在字典中,只需使用 并从字典中获取值,请使用 所以,你可以使用这样的东西 顺便提一句,您可以真正清理一些代码