如何在 Java 中自动从外部源(例如文件)读取对象属性?

发布于 2024-11-30 01:11:30 字数 567 浏览 1 评论 0 原文

我想知道是否有某种方法可以让我自动更新来自某个源(例如文件或地图)的对象属性。

详细来说,假设我有一个具有 Float 类型属性 x、y、width、height 的对象。我有一个带有 形式的属性键值对的映射。要更新对象的属性,我将迭代映射并执行以下操作:

if (key.equals("x")) x = (Float) map.get(key);
else if(key.equals("y")) y = (Float) map.get(key);
else if(key.equals("width")) width = (Float) map.get(key);
else if(key.equals("height")) height = (Float) map.get(key);

如果我向类添加更多属性,我将不得不继续添加这样的代码。所以我的问题基本上是,有没有一种方法可以自动化此过程,以便可以轻松添加新属性并按上述方式更新它们?可能通过使用注释?

谢谢, 风暴编织者

I was wondering if there's some way which allows me to automate the updating of object properties from some source as a file or a map.

To elaborate, suppose I have an object with properties x, y, width, height of type Float. And I have a map with key-value pair for the properties in the form <String, Float>. To update the properties of the object, I would iterate over the map and do something like:

if (key.equals("x")) x = (Float) map.get(key);
else if(key.equals("y")) y = (Float) map.get(key);
else if(key.equals("width")) width = (Float) map.get(key);
else if(key.equals("height")) height = (Float) map.get(key);

If I add more properties to the class, I'll have to keep adding code like this. So my question basically is, is there a way to automate this process so that it'll be easy to add new properties and update them as above? Possibly by the use of annotations?

Thanks,
stormweaver

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

紫轩蝶泪 2024-12-07 01:11:30

我会使用反射来做到这一点(查看此链接)。如果每个类属性都映射到一个属性,那么您可以获取所有类属性并正确迭代它们以更新属性值。这样你就不需要不断添加 if 子句。

有帮助吗?

I would do that using reflection (check out this link). If every class attribute is mapped to a property, then you could get all class attributes and iterate over them properly to update the property values. That way you don't need to keep adding if clauses.

Does it help?

怪我闹别瞎闹 2024-12-07 01:11:30

BeanUtils.populate(this, map) rel =“nofollow”>commons-beanutils:

根据指定的名称/值对填充指定 bean 的 JavaBeans 属性。

BeanUtils.populate(this, map) from commons-beanutils:

Populate the JavaBeans properties of the specified bean, based on the specified name/value pairs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文