java - Apache Commons 配置 containsKey 在现有 key 上返回 false

标签 java apache-commons-config

如果这被记录在案,我深​​表歉意,但我无法在官方文档中找到它。

我正在使用 XMLConfiguration 加载此文件,但 config.containsKey ("aliases") 返回 false 并且 config.containsKey ("aliases.alias ") 返回真。我是被迫检查“aliases.alias”还是有办法确定“aliases”是否作为节点存在?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <name>Vocabulary</name>
    <aliases>
        <alias>Dictionary</alias>
    </aliases>
    <extensions>
        <ext>dic</ext>
        <ext>txt</ext>
        <ext>pdf</ext>
        <ext>doc</ext>
    </extensions>
    <scanmode>1</scanmode>
</configuration>

最佳答案

您可以使用 HierarchicalConfiguration 来检查节点是否存在。

if(!config.configurationAt("aliases").isEmpty())

containsKey() 它按预期工作。 public boolean containsKey(字符串键) 检查指定的 key 是否包含在此配置中。请注意,对于此配置,术语“包含”表示键具有关联值。如果此键的节点没有值但有子节点(已定义或未定义),此方法仍将返回 FALSE。

这是代码 导入 org.apache.commons.configuration.ConfigurationException; 导入 org.apache.commons.configuration.XMLConfiguration;

public class HirerarchicalConfig{

    public static boolean checkIfNodeExists(String nodeName,XMLConfiguration config){       
        if(!config.configurationAt(nodeName).isEmpty())
            return true;
        else 
            return false;       
    }   
    public static void main(String[] args) throws ConfigurationException{       

        XMLConfiguration config = new XMLConfiguration("configFile.xml");
        boolean aliasesNode = checkIfNodeExists("aliases",config);
        System.out.println(aliasesNode);        
    }
}

关于java - Apache Commons 配置 containsKey 在现有 key 上返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32895398/

相关文章:

java - Java中无法指定类路径

java - 如何让我的 Android 应用程序可以从锁屏访问?

java - 我可以在 Apache Commons Config 中同时使用数组和非数组吗?

java - 为什么 Maven 不解决公共(public)配置的所有依赖项?

apache-commons-config - Apache Commons Configuration2 的依赖声明为可选

Java 堆内存分配限制

java - 为什么我的日期差异函数会随机输出不正确的值?

java - Netty 示例中 ctx.read() 与 ctx.channel.read() 的使用

java - 无法保存到 JBoss 5.1 中的公共(public)配置

java - 给定一个 Configuration 对象,如何创建 PropertiesConfiguration 对象?