Java 如何从@ToString lombok注释生成的字符串转换为object?
我有一个有趣的问题要解决 我们考虑下面的类(人和电话): 人Java 如何从@ToString lombok注释生成的字符串转换为object?,java,object,tostring,lombok,Java,Object,Tostring,Lombok,我有一个有趣的问题要解决 我们考虑下面的类(人和电话): 人 @AllArgsConstructor @Getter @Setter @ToString public class Person { private String name; private int age; private Telephone telephone; } 电话 @AllArgsConstructor @Getter @Setter @ToString public class Telepho
@AllArgsConstructor
@Getter
@Setter
@ToString
public class Person {
private String name;
private int age;
private Telephone telephone;
}
电话
@AllArgsConstructor
@Getter
@Setter
@ToString
public class Telephone {
private int codeArea;
private String number;
}
假设我有一个由lombok注释@ToString生成的Person对象字符串:
如何将上面的字符串再次转换为对象?是否有任何库可以帮助我完成这个过程,或者我必须手动为它创建一个解析器
我知道还有其他方法,比如生成json或序列化为java对象,然后将其转换回来。但是,这对我来说现在不是一个解决方案,因为我必须使用上面提到的字符串。最后,我想到了将该字符串转换为JSON格式,然后将其转换为对象的想法 因此,lombok生成的字符串是:
Person(name=John, age=30, telephone=Telephone(codeArea=16, number=1111-2222))
然后将以下字符(、=和)分别替换为{、:和},并删除类名,将其转换为JSON:
{name:John, age:30, telephone:{codeArea=16, number=1111-2222}}
现在可以将JSON转换为对象
我在Github中创建了一个执行此转换的工具。相反,在类中执行此操作
/**
* Object as JSON string.
* @return
*/
public String toString() {
// Declar GSON as new GsonBuilder().create();
return GSON.toJson(this);
}
从对象到字符串:使用Object.toString()
从字符串到对象:使用GSON.fromJson(jsonString,ModelClass) 如何将上面的字符串再次转换为对象?这真的很糟糕。我知道还有其他方法,比如生成json或序列化为java对象,然后将其转换回来。然而,这对我来说现在不是一个解决方案,因为我必须使用上面提到的字符串。这是正确的路径:DYou自己“解析”它,因为没有通用的方法来完成它。如果你想要一个通用的解决方案,在我看来,把这些字符串转换成JSON,并使用一些类似Jackson的库。如果只针对个人,那么就自己解析它。这两个都是很糟糕的主意。嗨,拉维·吉亚尼。要求是我处理遗留数据,并且数据以这种方式存储以用于审计目的。但现在我们需要处理这些数据。我认为替换并不是那么简单。@Henrique:似乎我们可以在处理Lombok时使用命令模式,而不是使用Memento,然后使用这样的项目将对象恢复到原始状态。
/**
* Object as JSON string.
* @return
*/
public String toString() {
// Declar GSON as new GsonBuilder().create();
return GSON.toJson(this);
}