我正在尝试将一个java对象转换为一个由“separator”分隔的字符串。
例子
public class Person{
int id;
String name;
String age;
String sex;
}
主要方法
Person per = new Person(1, "Kevin", "20", "Male");
String objectAsText = per.ConvertObjectToString(per, "|");
预期产量
1|Kevin|20|Male
请注意,java对象不是列表。我还想添加一个验证 ConvertObjectToString
可以避免打印空的对象值。ie公司
Person per = new Person(1, "Kevin", "Male");
String objectAsText = per.ConvertObjectToString(per, "|");
预期产量
1|Kevin|Male
我知道使用tostring方法可以实现这一点,但我想知道是否还有其他有效的方法。另外,如果为null,我不想逐值检查,因为java对象可能很大。
1条答案
按热度按时间bxpogfeg1#
如果您不想检查每个值,我建议将java对象转换为json,比如转换为
Map<String,Object>
然后使用collectors.joining您可以使用反射包来完成,但是请确保字段是
public
```Person per = new Person(1, "Kevin", "20", "Male");
String value = Arrays.stream(Person.getClass().getFields())
.map(f-> {
try {
return f.get(per).toString();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return null;
}).filter(Objects::nonNull).collect(Collectors.joining("|"));