我有一个User
列表对象的String
值,它是在运行时使用toString
方法生成的:
[User[firstName=John, lastName=Smith]]
有没有一种快速生成Java源代码的方法来创建这样一个对象?理想情况下,它会生成以下源代码:
Arrays.asList(new User("John", "Smith")); // might also use getters-setters
这将使我更快地编写测试代码Assert。
我的对象定义如下:
public record User (String firstName, String lastName) {}
2条答案
按热度按时间ffscu2ro1#
出于好奇,我尝试了一下,如果你能忍受一些限制,它会变得相当简单,其中一些是基本的,另一些只是需要更多的代码来解决
toString
生成的,并且是不宽容的(在错误位置的额外的/缺失的空格破坏了它)。toString
添加对
Map
的支持将是相当简单的。由于这些解析器的性质,修改它以实际构建对象而不是对象构造代码也将相当简单。这两个都留给读者作为练习。完整的测试如下,但作为一个例子,这里是如何使用它:
这个打印
注意最后一个是如何盲目地转储值而不验证类型的?🤷
测试类别:
gzszwxb42#
不,没有。
..................