CsvWriter增加重载writeBeans方法,支持可选bean字段

This commit is contained in:
Looly 2024-05-23 15:13:39 +08:00
parent a2b469dc0f
commit 3daeac4631

View File

@ -256,15 +256,16 @@ public final class CsvWriter implements Closeable, Flushable, Serializable {
* 将一个Bean集合写出到Writer并自动生成表头 * 将一个Bean集合写出到Writer并自动生成表头
* *
* @param beans Bean集合 * @param beans Bean集合
* @param properties 可选属性列表空表示全部属性
* @return this * @return this
*/ */
@SuppressWarnings("resource") @SuppressWarnings("resource")
public CsvWriter writeBeans(final Iterable<?> beans) { public CsvWriter writeBeans(final Iterable<?> beans, final String... properties) {
if (CollUtil.isNotEmpty(beans)) { if (CollUtil.isNotEmpty(beans)) {
boolean isFirst = true; boolean isFirst = true;
Map<String, Object> map; Map<String, Object> map;
for (final Object bean : beans) { for (final Object bean : beans) {
map = BeanUtil.beanToMap(bean); map = BeanUtil.beanToMap(bean, properties);
if (isFirst) { if (isFirst) {
writeHeaderLine(map.keySet().toArray(new String[0])); writeHeaderLine(map.keySet().toArray(new String[0]));
isFirst = false; isFirst = false;