java允许嵌套属性吗?
我指的是xml格式的类似内容:java允许嵌套属性吗?,java,xml,properties,nested,Java,Xml,Properties,Nested,我指的是xml格式的类似内容: <entry name="apple"> <property name="red" /> <property name="shiny" /> <property name="fresh" /> <property name="ripe" /> <property name="crunchy" /> </entry> <entry nam
<entry name="apple">
<property name="red" />
<property name="shiny" />
<property name="fresh" />
<property name="ripe" />
<property name="crunchy" />
</entry>
<entry name="plum">
< rinse and repeat > ....
<冲洗并重复>。。。。
根据我对java的“Property”类的了解,它是在哈希表中创建属性的一种非常线性的方法。它是getProp(K,V)。也许最好的方法是使用XML解析器?这样我就可以使对象类型为“fruit”,遍历属性并加载它们。如有任何建议,将不胜感激。先谢谢你 不,这是不可能的。请看一下:
但是,您可以创建自己的DTD和XML文档,并使用来解析/读取/创建它。不可能允许嵌套属性。要嵌套属性,需要有子节点。如果getProperty方法允许检索
对象
s,但它只允许检索字符串
s,那么这是可以实现的
Java的Properties对象的工作原理如下:
性质
-串
-串
-串
因此,除非可以通过字符串传递嵌套属性,否则不能将一个属性放置在另一个属性中
也许您可以使用字符串
s通过类似于
我的意思是:
Properties a;
HashTable<String, Properties> b;
Object getValue(Properties p, String key){
String s = p.getProperty(key);
if(s.beginsWith("prop:")){
return b.get(s);
} else
return s;
}
属性a;
哈希表b;
对象getValue(属性p,字符串键){
字符串s=p.getProperty(键);
如果(s.beginsWith(“道具:”){
返回b.get(s);
}否则
返回s;
}
您可能需要在代码库中处理该场景。您可能需要一个XML加载器来加载数据
“java允许嵌套属性吗?”鉴于java的XML解析器符合规范,更好的问题是“XML允许…”。我也有同样的问题,但考虑到现在允许检索泛型,它会改变您的答案吗?
Properties a;
HashTable<String, Properties> b;
Object getValue(Properties p, String key){
String s = p.getProperty(key);
if(s.beginsWith("prop:")){
return b.get(s);
} else
return s;
}