Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从@ToString lombok注释生成的字符串转换为object?_Java_Object_Tostring_Lombok - Fatal编程技术网

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);
}