gpt4 book ai didi

java - 将 JsonElement addProperty() 合并到一个方法中

转载 作者:行者123 更新时间:2023-12-02 06:36:29 24 4
gpt4 key购买 nike

我正在与 JsonElements 合作及其 addProperty 方法。 JsonElement 有 4 个重载的 addProperty 方法,我想将它们压缩为一个,以便更轻松地添加属性。这就是我开始写的内容,我意识到棘手的部分是确定一个字符串是否是一个数字

关于如何改进此方法有什么想法吗?

public JsonElementBuilder addProperty(final String property, final Object value)
{

if (parent instanceof JsonObject) {

if (value instanceof Boolean) {
((JsonObject) parent).addProperty(property, (Boolean)value);
} else if (value instanceof Character) {
((JsonObject) parent).addProperty(property, (Character)value);
} else if (value instanceof Number) {
((JsonObject) parent).addProperty(property, (Number)value);
} else if (value instanceof String) {
if (isInteger((String)value))
{
((JsonObject) parent).addProperty(property, (Number)value);
} else {
((JsonObject) parent).addProperty(property, (String)value);
}
}
}

private boolean isInteger(String s) {
try {
Integer.parseInt(s);
} catch(NumberFormatException e) {
return false;
}
return true;
}

最佳答案

这是子类型多态性发挥作用的典型场景。执行以下操作

 interface I {
void do();
}

class A implements I { void do() { doA() } ... }
class B implements I { void do() { doB() } ... }
class C implements I { void do() { doC() } ... }

然后你可以简单地调用 do() 。

如果您无法随意更改 A、B 和 C,您可以应用访问者模式来实现相同的目的。

关于java - 将 JsonElement addProperty() 合并到一个方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19597689/

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