如何在Java中将字符串转换回对象列表
如何将字符串转换回对象?我有以下课程:如何在Java中将字符串转换回对象列表,java,string,list,Java,String,List,如何将字符串转换回对象?我有以下课程: class Test { String name; String value; String testing; @Override public String toString() { return "Test{" + "name='" + name + '\'' + ", value='" + value + '\'' +
class Test {
String name;
String value;
String testing;
@Override
public String toString() {
return "Test{" +
"name='" + name + '\'' +
", value='" + value + '\'' +
", testing='" + testing + '\'' +
'}';
}
}
class Testing {
private List<Test> testing = new ArrayList<Test>();
handling(testing.toString())
public String handling(String testing) {
// do some handling and return a string
}
}
那么如何将字符串转换回测试的对象列表
有人能帮忙吗?如果您不需要确切地
转换字符串模式,只需要将对象转换为人类可读的对象,然后再转换回对象
,您可以使用类似JacksonObjectMapper
的工具无缝地封送到json并解析回Object
。有关快速启动的信息,请参阅。您可以创建一个附加构造函数,并使用以下字符串调用它们:
类测试{
私有字符串名称;
私有字符串值;
私有字符串测试;
测试(字符串对象字符串){
Pattern=Pattern.compile(“name=('.+')、value=('.+')、testing=('.+');
Matcher Matcher=pattern.Matcher(objString);
if(matcher.matches()){
name=matcher.group(1);
值=匹配器组(2);
测试=匹配组(3);
}否则{
抛出新ArgumentException(“无法分析”):
}
}
@凌驾
公共字符串toString(){
返回“Test{”+
“名称=”“+name+””+
,value='“+value+'”+
,测试=“+”测试+“”+
'}';
}
}
类测试{
点测试(列表测试){
List testingAsString=new ArrayList();
//串
用于(测试t:测试){
testingAsString.add(t.toString());
}
List clonedTesting=new ArrayList();
//检验
for(字符串t:测试字符串){
克隆测试。添加(新测试(t));
}
//在这里,每个测试字符串都是类型test的对象
for(测试t:克隆测试){
系统输出打印ln(t);
}
}
}
不确定为什么您真的需要它,因为您在范围内有原始的列表
,但是您可以始终向Test
类添加一个静态实用程序方法,该方法可以将给定的String
表示反序列化回Test
实例中。如果这是针对某种基于文本的api,我建议使用JSON,它更易于解析,特别是因为有很多用于此的库。如果您使用自己的自定义文本表示,那么您还必须提供自己的自定义解析器。您不应该使用toString()来序列化对象。与此相反,只需使用Jackson将对象序列化为JSON并从JSON返回到POJO即可。您应该为它实现可序列化的对象。它实际上不是Json,它不是Json,但它可以/应该是。否则,您必须自己为它编写解析器。
[Test{name='name1', value='value1', testing='testing1'}, Test{name='name2', value='value2', testing='testing2'}, Test{name='name3', value='value3', testing='testing3'}]