gpt4 book ai didi

java - 摆脱 if/else

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:03 28 4
gpt4 key购买 nike

在 Java 中,我必须设置一个带有值的 POJO 类。然而,要决定使用哪个 setter 函数,我必须取决于 if 条件。我当前的代码如下所示:

// Code written in a function which is called within a loop, while parsing xml file.
if (name.equals("dim1")) {
line.setDim1Code(Integer.parseInt(value));
} else if (name.equals("dim2")) {
line.setDim2Code(Integer.parseInt(value));
} else if (name.equals("debitcredit")) {
line.setDebitOrCredit(value);
} else if (name.equals("basevalue")) {
line.setBasevalue(Integer.parseInt(value));
} else if (name.equals("rate")) {
line.setRate(Integer.parseInt(value));
} else if (name.equals("value")) {
line.setValue(Integer.parseInt(value));
} else if (name.equals("description")) {
line.setDescription(value);
} else if (name.equals("vatbasetotal")) {
line.setVatBaseTotal(value);
} else if (name.equals("vattotal")) {
line.setVatTotal(value);
}

这只是一个例子,但我有 70 多个这样的属性要设置。我的代码可以正常工作,但我想知道这样做是否正确?

据我所知,这样的代码违反编码最佳实践。我们如何在 Java 中优化这段代码?处理此类代码的 Java 最佳实践是什么?

最佳答案

这实际上是一些东西,应该根据一些库的注释自动完成,比如 Jackson 2.0+ 或类似的东西(到目前为止我只解析 JSON)

然后对象看起来像这样:

@XmlAccessorType(XmlAccessType.FIELD)
public class Employee
{
@XmlAttribute
@XmlID
protected String id;

@XmlAttribute
protected String name;

@XmlIDREF
protected Employee manager;

@XmlElement(name="report")
@XmlIDREF
protected List<Employee> reports;

public Employee() {
reports = new ArrayList<Employee>();
}
}

关于java - 摆脱 if/else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250907/

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