gpt4 book ai didi

java - 如何使用来自另一个不相关对象的数据快速填充 Java 对象?

转载 作者:搜寻专家 更新时间:2023-10-31 08:14:26 25 4
gpt4 key购买 nike

我怎样才能用来自任何其他任意对象的数据填充一个简单的 Java 对象?

例如,我可以得到一个 Document 我可以遍历其子节点的对象,并且我想在另一个对象中使用该节点的值设置同名属性。

我主要使用动态语言工作,我想我对它在 perl 或 javascript 中的工作方式挂断了,无法从动态的阴沟中抽出足够长的时间来清楚地看到这一点。

我知道我可以做类似(伪代码)的事情

while (key = nextKey) {
if (key.name == "fooBar") {
object.setFooBar(key.value);
} else if (key.name == "bazQux") {
object.setBazQux(key.value);
}
...etc...
}

但是当属性数量或复杂性增加时,这感觉并不好,而且感觉很糟糕。

在动态语言中,我会做类似的事情:

while (key = nextKey) {
object.setField(key.name, key.value);
// or even
object.[key.name] = key.value;
}

哪里setField可以是带有代码引用的调度表。我知道我没有默认情况下每个对象都是散列的奢侈,但我正在寻找一般建议。你会怎么做?

switch/case 会好一点,但是 java 提示它不喜欢在这样的语句中使用字符串。枚举会是一个解决方案吗?

我研究过使用反射来实现某种自动调度表,但这让我觉得被人看不起,必须有更好的方法。

感谢您的任何见解。

最佳答案

这个主题之前讨论过:any tool for java object to object mapping?特别是 post of Pascal Thivent包含很多 API。当然,两者之间肯定有一个适合您的需求。

您也可以根据 Reflection API 决定自己种植一个或者可能是 JavaBeans API (在每个 PropertyEditor 下)。但我认为这将花费比您预期的更多的时间才能使它变得稳健。

关于java - 如何使用来自另一个不相关对象的数据快速填充 Java 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1943726/

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