【发布时间】:2023-03-08 04:44:01
【问题描述】:
我有 3 个如下所示的域类,我需要将它们的值作为示例中的字符串数组。
这样一个一个地写所有字段非常耗时且容易出错,也许有更快的方法?它将遍历所有字段并获取它们的字符串值
也许用番石榴或反射?
Class Cart1{
//Domain class with 100s of fields with getters & setters
public String[] toStringArray() {
return new String[]{
nullToEmpty(String.valueOf(getSomeItem1())),
nullToEmpty(String.valueOf(getOtherItem2())),
.
nullToEmpty(String.valueOf(getSomeFreakItem100())),
}
}
编辑:我需要这个用于 opencvs,它需要一个 String[],如本例所示:
【问题讨论】:
-
你可以试试commons.apache.org/proper/commons-beanutils,它有一个BeanMap,它将为给定的对象生成一个属性名称的映射-> 值(假设存在bean 样式的getter/setter)。您还可以使用反射(或 BeanUtils 中的一些较低级别的实用程序)自行开发,可选地使用自定义注释以进行更多控制(例如,标记要包含/排除的属性,在结果字符串数组中指定它们的索引等)。
-
您需要这样做似乎很可疑。听起来这些应该保存在
Map或其他一些大容量数据结构中,而不是全部作为对象中的字段混合在一起。 -
@Louis Wasserman 我使用 opencvs 并期望 String[] ..你有更好的主意吗?
-
我对@987654326@ 没有异议,我担心这些东西不在
String[]或某个集合类型中。 -
@Louis Wasserman 它代表 db 中的一个表