gpt4 book ai didi

java - 如何打开对象字段的数据类型?

转载 作者:行者123 更新时间:2023-11-29 07:39:08 26 4
gpt4 key购买 nike

我有一个很长的 switch 语句,我正试图提高它的效率。它解析 xml 提要并使用 xml 值填充 Java 对象。可能有 30 个字段,所以写一个 switch case 有点乏味对于每个字段。

switch (currentTagName) {
case "longitude" :
observation.setLongitude(Double.parseDouble(parser.getText()));
break;
case "elevation" :
observation.setElevation(Integer.parseInt(parser.getText()));
break;
case "observation_time" :
observation.setObservation_time(parser.getText());
break;

您可以看到,每种情况处理方式的唯一区别在于我使用的数据类型。

我正在尝试找出执行类似此操作的语法(伪代码):

//get the data type of this variable, somehow or other
String inputType = Observation.getMethodInputType("set" + currentTagName);

//switch on that data type
switch(inputType) {
case "Integer":
observation.set{currentTagName}(Integer.parseInt(parser.getText()));
break;
case "Double":
observation.set{currentTagName}(Double.parseDouble(parser.getText()));
break;
case "String":
observation.set{currentTagName}(parser.getText());
break;
}

只是我的 Java 语法很生疏,我不确定正确的方法是什么(或者如果你可以),特别是对于 set{currentTagName} 部分和 getMethodInputType()(是这样吗?)。

正确的做法是什么?

最佳答案

您的解决方案将很难维护。 Java 几乎没有流行的方法来以紧凑的方式解析 xml(没有繁琐的字符串操作)。

你应该检查:

  • JAXB (推荐)它提供了良好的域封装和非常可读的代码

  • DOM半可读半快

  • > SAX这是非常快和最不容易维护的

对于 JAXB,您必须创建一个或多个对象,这将重新创建 xml 结构,并且转换会自动为您发生。

关于java - 如何打开对象字段的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32289952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com