问题标签 [apache-commons-beanutils]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java - 如何简化我的 java
我正在 Spring Framework 中编写一些 java 代码。
我有两个豆子,person 和 person1。它们的结构略有不同,也就是说每个变量的名称略有不同。
我正在尝试将详细信息从一个 bean 复制到另一个。如果值不为空,我只想复制该值。我见过一个名为 BeanUtils 的 API,但是无论它是否为空,它都会复制它。
这是我的代码:
我有大约 40 个节点需要复制,这会创建很多丑陋的代码。有没有人有更好的方法来做到这一点?也许如果我做一个映射或其他东西然后循环遍历它?没有把握。
如果没有,有谁知道我是否可以让 BeanUtils 在不复制空值的情况下运行副本?
原因是第二个 bean,person1,已经有一堆值了。如果有新的值可以覆盖它,我只想覆盖它。
像往常一样,变量是更大系统的一部分,我无法标准化名称。
谢谢
java - 使用 BeanUtils 检索字段值
我想提取某些自定义注释未标记的私有字段值,这可以通过 BeanUtils 实现吗?如果是,如何?
java - 递归 BeanUtils.describe()
是否有一个版本的BeanUtils.describe(customer)递归调用“客户”的复杂属性上的 describe() 方法。
在这里,我也希望使用 describe 方法来检索地址属性的内容。
目前,我所拥有的都可以看到类的名称如下:
java - 如果字段名称不同,如何将 POJO 映射到 DTO
问题描述:
我有一个 POJO 对象,它是从数据库映射的。具有与数据库表中相同名称的属性(列)。但它需要一些更改,我将不得不使用 DTO。但问题是 DTO 具有数据库表中定义的不同名称的属性,(因此,我将数据库表映射到 POJO,然后将 POJO 映射到 DTO)所以在映射时我必须使用字段和字段映射(一个字段POJO 和 DTO 对象的一个字段),这将需要 50 行代码(具有 50 列的数据库表)。是否有任何解决方案可以使用 DTO 直接映射到我的 POJO?或者,如果数据库表和 POJO/DTO 具有不同的列名,有没有办法将数据库表映射到 POJO/DTO?
例如
java - BeanUtils.copyProperties() 与 DozerBeanMapper.map()
BeanUtils.copyProperties()
当我需要映射所有字段并且字段名称相同时,我正在使用bean 到 dto 映射。但是我不需要将源 bean 的所有字段映射到目标 dto,我使用了 DozerBeanMapper.map()
,因为我不知道在这种情况下使用 BeanUtils。
所以我认为这两种方法都有自己的功能,两者之间没有任何相似之处。我对吗?请指导我。
android - 是否有与 Android 兼容的 Property Utils 替代品?
org.apache.commons.beanutils.PropertyUtils
在 Android 上是否有一个方便的花花公子?
由于对, 和utils
的一些依赖,我似乎无法在我的 android 应用程序中使用 bean 。所以我想知道是否有任何替代方案?PropertyDescriptor
IndexedPropertyDescriptor
基本上我想做的就是使用方法名称作为字符串“someMethod”并将其输入setMethod(anObject, "someMethod", value)
,就像这样PropertyUtils
做; 但不必诉诸于令人讨厌的反思……
或者我的手被束缚了,我需要使用反射?
java - 如何使用 BeanUtils 将源复制到目标中具有较少属性的目标 bean?
我猜 Beanutils.copyProperties() 在使用目标中不存在的属性从源复制到目标时抛出异常。String[] ignoreList 参数似乎只忽略目标中存在的属性。有什么办法可以忽略一些源属性?任何帮助将不胜感激。谢谢
java - 通过java中的反射填充默认值
我有一个复杂的对象层次结构,它有几个扩展。
我正在寻找一个可以反射性地在所有字段上插入默认值的库。
例如:
我想要一个将对象作为参数的库,在这种情况下是Foo
类,然后在所有字段上反射性地插入默认值(如果我可以定义默认值更好)。此外,所有地图、列表、集合等都应该得到一个新的
我看过BeanUtils,但据我所知,它并不完全支持我正在寻找的东西。
注意:这些只是示例,我的对象要复杂得多,也更大。它们有很多对象,每个对象都有很多对象,依此类推。两者都有地图,列表等。
将 BeanUtils 和 Google Guava 之类的库合并为我自己的库会更好吗?
java - 什么可能导致程序在它似乎拥有的监视器上被阻止?
我最近遇到了三个运行相同代码的独立服务器都遇到相同症状的问题。这些是使用 json-lib 创建 JSON 响应的大容量 REST / JSON 服务器。服务器最终都会挂起,大多数线程都在等待一个特定的锁。持有该锁的线程都具有相同的基本外观:
这是该线程持有的唯一锁。我尝试过简单地在谷歌上搜索监视器条目值所指的内容,但没有任何运气。对于这个线程,值 [0x000000004dec8000] 似乎没有引用对象 ID,并且它没有出现在堆栈跟踪中的其他任何地方。
我在这里发现了完全相同的问题,没有答案,而这个较旧的 SO 问题说这是一个 JVM 错误,是由于未将监视器正确分配给其中一个等待线程而引起的。我不完全确定我理解如何将线程标记为锁定监视器但实际上并没有给出监视器,但是这些操作可能是分开的并且 JVM 中的错误在分配锁后会导致问题是有道理的,但是在分配监视器之前(尽管我一直认为它们是同一件事)。
我使用的java版本是:
java 版本“1.6.0_18”Java(TM) SE 运行时环境(构建 1.6.0_18-b07)Java HotSpot(TM) 64 位服务器 VM(构建 16.0-b13,混合模式)
在:
CentOS release 5.2 (Final) 内核版本:2.6.18-194.17.4.el5xen
这真的只是一个 JVM 错误还是我应该研究的其他东西?
编辑:
我们使用的 commons-beanutils 版本是 1.7。我们已经升级到 1.8,看看它是否能解决问题。
java - 尝试获取简单属性值时,PropertyUtils.getProperty 失败
我的PropertyUtils.getProperty(bean, fieldName)
方法有一个奇怪的问题,我得到了一个java.lang.NoShuchMethodException
.
假设我们有一个名为 pojo 的简单 java 类:
和一个调用者类
第一个PropertyUtils.getProperty
电话工作正常,第二个电话throw
将NoSuchMethodExeption
.
我想知道我是否遗漏了一些愚蠢的东西或者它真的是一个错误:)