我在寻找一个简单的解决方案。
我有一个xml文件:
<properties>
<property>
<class>java.lang.String</class>
<value>String value...</value>
</property>
<property>
<class>java.lang.Boolean</class>
<value>true</value>
</property>
<!-- ... others java lang wrapper class -->
</properties>
我想做一个动态解析器。
我知道我可以用org.w3c.dom.*读取xml,org.w3c.dom.Node.getTextContent()我可以得到标签的值。
Class<?> clazz = Class.forName(classTextContent);
// How to convert value to specific clazz?
// if/else (clazz)? Does not look a nice answer.
有什么建议吗?
[编辑]通过反思:
变量“clazz”是java.lang.类,对吗?我怎么能转换文本内容值(在字符串)到任何包装类型?
Object objectValue = null;
Class<?> clazz = Class.forName(nodeClass.getTextContent());
String value = nodeValue.getTextContent();
if (clazz.equals(Boolean.class) { objectValue = Boolean.valueOf(value) }
valueOf可能是我可以使用反射调用的通用方法。。。整型、浮点型、布尔型、长型、双支持值。
另一种方式?
Object object = YourClass.class.getConstructor(new Class<?>[]{}).newInstance();
// if you want to use a constructor, let's say, for YourClass(int name, int id)
Object object = YourClass.class.getConstructor(new Class<?>[]{int.class, int.class}).newInstance(desiredName, desiredId);
问题内容: 我有一个yaml文件,当前写为: 但是,此yaml文件经常更改,因此每次可以使用不同的值添加新条目: 我从使用gopkg.in/yaml.v2包开始就知道,如果所有值都相同,我可以解析yaml文件,例如: 在上面的示例中,它仅适用于密钥/狗密钥,而不适用于其他密钥。 当新值经常添加到yaml文件中时,如何在Go中执行此操作? 谢谢 问题答案: 如果您现在不精确的结构,则应该使您的结构看
问题内容: 我如何解析这个json对象: 我可以有N个端口,每个端口的值始终是key:value对。 到目前为止,我已经尝试过了: 有了这个我得到键(0,1),但值是空的。 我也尝试过这个: 但也不行。 这就是我解码json对象的方式: 问题答案: 使用此类型: 游乐场的例子 笔记: 字段名称非常匹配。我使用字段名称“ Ports”来匹配JSON文本中使用的名称。 Go类型在JSON中应具有相同级
我正在使用Spring4.3和Hibernate3.6。我尝试指定一个自定义Hibernate方言解析器,但没有使用它。 我把日志语句在我的自定义方言解析器,但他们从来没有打印。 我的具体问题是: > 如何让Hibernate 3.6获取我的自定义方言解析器? 为什么忽略一个特定的hibernate属性(hibernate.dialogue\u解析器)?正确的设置方法是什么? 这是我尝试过的事情的
问题内容: 我有一个json对象是这样的: 我试图这样解析: 但是我不知道如何访问动态名称。我们如何解析这样的JSON -注意-Ya的 所有值都带有引号,例如:“ Yg&R_” 问题答案: 试试这个动态的JSON解析器
我正在尝试用camel-routes应用程序为我的Spring Boot编写单元测试。我的路由生产者是Kafkaendpoint,URI在应用程序中定义。属性文件。我试图模拟这个Kafka生产者endpoint,但它没有解析URI值。 在上面的psedoocode中,Kafka。在应用程序中定义了@MockEndpointsAndSkip注释的服务器值。属性文件为kafka。服务器=本地主机:90
我的Java程序看起来像: 输出为:<代码> 因为我使用的是JasperReports和html样式,只允许我想要的输出。如何做到这一点?Transformer或DocumentBuilderFactory是否有任何输出属性可以进行想要的输出?